Вы можете сделать что-то вроде,
Это работает в моем случае ..
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
startActivityForResult(intent, TAKE_PHOTO_CODE);
И getImageUri ()
/**
* Get the uri of the captured file
* @return A Uri which path is the path of an image file, stored on the dcim folder
*/
private Uri getImageUri() {
// Store image in dcim
// Here you can change yourinternal storage path to store those images..
File file = new File(Environment.getExternalStorageDirectory() + "/DCIM", CAPTURE_TITLE);
Uri imgUri = Uri.fromFile(file);
return imgUri;
}
Для получения дополнительной информации смотрите Как сделать снимок и сохранить его с помощью собственной камеры Android
РЕДАКТИРОВАТЬ:
В моем коде я храню изображения на SDCARD
, но вы можете указать Внутренний путь хранения в соответствии с вашими потребностями, например, /data/data/<package_name>/files/
..
Вы можете использовать Context.getFilesDir()
. Но имейте в виду, что даже это по умолчанию является частным для вашего приложения, поэтому другие приложения (в том числе хранилище мультимедиа) не смогут получить к нему доступ. Тем не менее, у вас всегда есть возможность сделать файлы доступными для чтения или записи.
также Context.getDir()
с Context.MODE_WORLD_WRITEABLE
для записи каталога, в который могут писать другие приложения. Но опять же, я подвергаю сомнению необходимость хранить данные изображения в локальном хранилище. Пользователям это не понравится, если только от пользователей не ожидается, что их SD-карта будет установлена во время использования вашего приложения (что не является распространенным).