Я запускаю приложение камеры по умолчанию на Android, чтобы получить изображение в моем приложении, используя следующий код:
//create parameters for Intent with filename
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
//imageUri is the current activity attribute, define and save it for later usage (also in onSaveInstanceState)
imageUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
//create new Intent
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, actionCode);
и поймать картинку в методе onActivityResult.
Часто это будет работать просто отлично, и устройство сделает снимок и вернет его в приложение, но иногда после завершения работы с приложением камеры (сохраняя изображение или нажимая кнопку отмены) оно запускает приложение камеры во второй раз , Как я могу предотвратить повторное открытие приложения?
РЕДАКТИРОВАТЬ: Благодаря комментариям Krylez я смог найти решение.
Я уже использовал статический класс для хранения изображения с камеры, чтобы я мог получить к нему доступ с помощью вкладки «Активность», поэтому я также добавил туда логическое значение. Теперь, прежде чем запустить Activity для обработки камеры, я установил для этого логического значения значение true, а после проверки установил для него значение false, чтобы при повторном вызове метода onCreate камера не загружалась во второй раз.