, так что это работало прекрасно до вчерашнего дня, когда я обновил свой телефон до 5.0.0 и протестировал приложение в эмуляторе 5.0.0. В основном цель состоит в том, чтобы позволить пользователю сделать снимок, вернуть его, открыть его, чтобы разрешить обрезку, а затем вернуть его и установить в качестве изображения.onActivityResult от камеры дает нулевое намерение
Все прошло нормально, но теперь цель onActivityResult равна нулю.
Вот код:
public void takeDisplayPicture(View view) {
final String TAKE_DISPLAY_PICTURE = "Take Display Picture";
Log.d(TAKE_DISPLAY_PICTURE, "Clicked");
try {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_CAPTURE);
} catch (ActivityNotFoundException e) {
String msg = "Your device doesn't support a camera!";
Toast toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
toast.show();
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
final String RETURN_DISPLAY_PICTURE = "Return Display Picture";
Log.d(RETURN_DISPLAY_PICTURE, "Returned");
if (resultCode == RESULT_OK && requestCode == CAMERA_CAPTURE) {
picUri = data.getData();
performCrop(picUri);
} else if (requestCode == PIC_CROP) {
Bundle extras = data.getExtras();
bitmap = extras.getParcelable("data");
displayPicture.setImageBitmap(bitmap);
}
}
private void performCrop(Uri picUri) {
try {
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(picUri, "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, PIC_CROP);
} catch (ActivityNotFoundException e) {
String msg = "Your device doesn't support the crop action!";
Toast toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
toast.show();
}
}
Было бы более полезным делать EXTRA_OUTPUT, а затем относительно кода в целом? Что касается намерения CROP, почему это работает с 4.0, а не с 5.0? Какова работа вокруг/другой метод выполнения урожая? –
@AlexKnight: «Было бы более полезно делать EXTRA_OUTPUT, а затем в отношении кода в целом?» - если вы хотите полноразмерные изображения, это ваш единственный вариант. Если все, что вам нужно, это миниатюра, то ваш текущий код в порядке, кроме ожиданий 'Uri'. «Почему это работает на 4.0, а не 5.0?» - возможно, приложение камеры изменилось. Никто не имеет никакого смысла полагаться на недокументированные вещи, подобные этому действию «Intent», так как не требуется, чтобы все приложения камеры (предустановленные, установленные из Play Маркета и т. Д.) Предлагали это действие. – CommonsWare
@AlexKnight: «Что такое работа вокруг/другой метод выполнения урожая?» - прочитайте сообщение в блоге, которое я связал в своем вопросе, для ссылок на некоторые библиотеки. Или посмотрите [эту категорию Android Arsenal] (http://android-arsenal.com/tag/45). – CommonsWare