В моем приложении мне нужно сохранить изображение с камеры, когда пользователь нажимает на изображение с камеры. Пока все хорошо, я следовал официальному руководству: http://developer.android.com/guide/topics/media/camera.html и все работает отлично, за исключением случаев, когда я пытаюсь сохранить изображение в обратном вызове. Действительно, я не получаю ошибки в блоке try / catch, но мой файл нигде не найден.
Я добавил правильные разрешения в манифесте:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
В моем обратном вызове у меня есть:
private PictureCallback mPicture = new PictureCallback()
{
public void onPictureTaken(byte[] data, Camera camera)
{
Log.d("tag", "Je rentre bien dans la callback");
//File pictureFile = media.getOutputMediaFile( MediaFile.MEDIA_TYPE_IMAGE );
File pictureFile = new File( Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "temp.png");
if (pictureFile == null)
{
Log.d("tag", "Error creating media file, check storage permissions ");
return;
}
try
{
FileOutputStream fos = new FileOutputStream( pictureFile );
Log.d("tag", "Fichier créer : " + pictureFile.getAbsolutePath() );
fos.write(data);
fos.close();
}
catch (FileNotFoundException e)
{
Log.d("tag", "File not found " + pictureFile.getAbsolutePath()
+ " Readable : " + pictureFile.canRead()
+ " Writeable : " + pictureFile.canWrite()
+ " Exist : " + pictureFile.exists() );
}
catch (IOException e)
{
Log.d("tag", "Error accessing file");
}
}
Мой лог-файл показывает мое это:
04-03 10:29:28.950: D/tag(15087): Je rentre bien dans la callback
04-03 10:29:28.960: D/tag(15087): Fichier créer : /mnt/sdcard/Pictures/temp.png
Я проверяю sdcard в планшете, но, как я уже сказал, файл нигде не найден. Я исследую свою проблему, но пока не нашел ничего полезного.
Я не вижу, что не так с моим кодом или чего не хватает.
Я надеюсь, что кто-то здесь может мне помочь.