Android - Не получается получить изображение с камеры намеренно на 4.2.2
Я пытаюсь сфотографировать, а затем получить путь к файлу, позвонив:
Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera_intent, Static.TAKE_PICTURE);
и тогда:
case Static.TAKE_PICTURE:
if(resultCode == Activity.RESULT_OK){
if(data.getData() != null){
Uri selectedImage = data.getData();
String path = selectedImage.getPath();
if(path.contains("images/media")){
path = Static.getImageRealPathFromURI(getActivity().getBaseContext(),selectedImage);
}
}
}
break;
работает нормально на 4.1.2 Galaxy S3, но каждый раз вылетает на 4.2.2 Nexus 10 с:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65642, result=-1, data=null} to activity {com.******.***/com.******.***.Main}: java.lang.NullPointerException
Если я попытаюсь сделать то же самое для видео:
Intent video_intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(video_intent, Static.RECORD_VIDEO);
работает отлично. На самом деле я понятия не имею, почему.
1 ответ
Решение
Это работает для меня:
photoFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + Static.genereateFileName() + ".jpg";
File imageFile = new File(photoFilePath);
Uri imageFileUri = Uri.fromFile(imageFile);
Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
camera_intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
startActivityForResult(camera_intent, Static.TAKE_PICTURE);