Я вижу странное поведение на двух телефонах, когда я просто пытаюсь программно запустить приложение камеры с намерением.
Это работает как и на других телефонах (Samsung, Motorola ...), но на двух моих тестовых телефонах - Nexus 5x (Android 8) и Pixel (1) - Android (10) при запуске приложения камеры, пользователь должен сделать фотографию дважды, прежде чем вернуться в мое приложение с помощью onActivityResult.
Стартовый вызов очень прост, просто для теста:
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent, IntentConstants.REQ_LAUNCH_CAMERA)
Запущено приложение камеры, показывает экран камеры кнопкой «стрелок», кнопка нажата, она показывает захваченное изображение с кнопкой проверки для подтверждения, и когда оно нажимается, подтверждается, оно не выходит. Вместо этого он снова показывает экран камеры с помощью кнопки стрелка, подождите, пока пользователь сделает еще одну фотографию и подтвердит ее, и только после этого приложение камеры завершает работу и перезванивает onActivityResult
Намерение отправлено только один раз. Это не происходит на других телефонах (Samsung, Motorola и др. c)
Я предполагаю, что это может быть связано с настройками приложения камеры на указанном телефоне c, вероятно (но я не вижу что-то особенное) или мне нужно что-то добавить в намерение (но я ничего не вижу)
Я пытался добавить также
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)
Это не меняет ничего на пикселе , но это вызывает внутренний взлом sh на Nexus 5X:
Process: com.google.android.GoogleCamera
java.lang.NullPointerException at
com.google.android.apps.camera.shutterbutton.ShutterButton.performClick
com.google.android.GoogleCamera java.lang.NullPointerException at
com.google.android.apps.camera.shutterbutton.ShutterButton.performClick(PG:160)
Я бы не стал сильно беспокоиться о Nexus 5X, но проблема в том, что это происходит и на Pixel 1, что означает, что он может быть проблематично c на пикселях 2,3,4 (еще не тестировал).
Если у вас есть похожая проблема (и потенциальное решение), пожалуйста, сообщите мне.