#android #android-intent #android-activity
#Android #android-намерение #android-activity
Вопрос:
У меня проблема, когда я запускаю activityforresult для получения изображения, resultCode всегда является Activity.RESULT_CANCELED (0) при наличии двух или более приложений для камер, которые могут обрабатывать это намерение (появляется окно выбора приложения). Но если я установлю одно из них в качестве приложения по умолчанию и в следующий раз оно не предложит мне выбрать, все работает нормально, и оно делает снимок и обнаруживает его в onActivityResult в моем фрагменте, который запустил startActivityForResult(). То же самое происходит, когда я пытаюсь открыть галерею, чтобы выбрать картинку. Если есть два приложения галереи, я выбираю любое из них, результат выбора изображения всегда равен 0. Это код, который я использую для запуска приложения camera:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(takePictureIntent, AppConstants.TAKE_PICURE_CAMERA_REQUEST_CODE);
}
Комментарии:
1. Имеет ли ваша активность launchMode =»singleTask»?
2. @andreich Я вызываю startActivityForResult() из фрагмента, но родительское действие для этого фрагмента имеет launchMode =»singleInstance».
Ответ №1:
У меня была такая же проблема, когда моя активность была launchMode="singleTask"
, но я меняю на singleTop
, и это решает проблему
Комментарии:
1. Пожалуйста, уточните, где именно вы устанавливаете это свойство?
Ответ №2:
Я только что обновил свой Poco X3 до Android 11, и теперь у меня та же проблема… Вероятно, это ошибка в MIUI (12.0.8). Это отлично работает на других устройствах Android 11.
Изменение launchMode не работает. Однако, когда я обнаруживаю пользователя MIUI, я обхожу средство выбора и просто открываю первое найденное приложение для камеры.
Хуже всего то, что вы не можете определить, когда возникает эта проблема. Таким образом, вы не можете войти в систему, когда что-то идет не так, и, следовательно, вы не можете узнать, у каких пользователей возникает эта проблема.
Такая же проблема возникает также при попытке получить фотографию из галереи или при попытке открыть фотографию в приложении для фотографий. Последнее приводит к сообщению «не удается найти фотографию».