Я разрабатываю приложение, в котором изображение взято из собственного приложения камеры. должен быть показан пользователю. Код, который я сделал:
/* Intent */
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, TAKE_PICTURE);
/* Result */
onActivityResult(int requestCode, int resultCode,
Intent returnIntent) {
if(requestCode == TAKE_PICTURE) {
//picture from Camera
if (resultCode == Activity.RESULT_OK) {
if(returnIntent != null) {
try {
// Get the file path where the image is stored.
// This runs fine on all devices, except Samsung ones.
Uri selectedImage = returnIntent.getData();
if(selectedImage == null) {
if(returnIntent.getExtras() != null &&
returnIntent.getExtras().get(AppConstants.DATA) != null) {
// But, I get the image Bitmap here. Means the image is stored in disk.
Bitmap bmp = (Bitmap) returnIntent.getExtras().get(AppConstants.DATA);
}
}
} catch (Exception e) {
//
}
}
}
}
}
Проблема в том, что приведенный выше код отлично работает на всех устройствах, которые я пробовал (HTC, SE), но почему-то не работает на устройствах Samsung. "Uri selectedImage = returnIntent.getData ();" никогда ничего не возвращает. Поскольку все мое приложение построено на этой логике хранения пути к файлу, я не могу продолжить. Есть какое решение люди.