Android 10: ACTION_VIEW выходит из строя - PullRequest
1 голос
/ 21 октября 2019

Один пользователь моего приложения сообщает, что после обновления до Android 10 мое приложение на его устройстве перестало отображать изображение.

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("image/*");
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setData(scannedUri);
startActivity(intent);

У меня есть «targetSdkVersion 28», поэтому новые правила хранения Scoped не должны работать,Тем не менее я поставил «compileSdkVersion 29» и включил в файл манифеста:

android:requestLegacyExternalStorage="true"

Тем не менее все, что у моего пользователя есть пустой экран, в то время как он мог видеть изображение до Android 10: ACTION_VIEW not displaying an image in Android 10

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Я думаю, что проблема расширения изображения .jpeg, .jpg или другого ....

Intent intent = new Intent (Intent.ACTION_VIEW);intent.setType ( "изображение / JPEG");intent.addFlags (Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);intent.setData (scannedUri);startActivity (намерение);

0 голосов
/ 21 октября 2019

Если вы передадите Uri таким образом, например,

Uri imageUri = Uri.parse("http://www.android.com");
Intent imageIntent = new Intent(Intent.ACTION_VIEW, imageUri);

По умолчанию система определяет соответствующий тип MIME, требуемый намерением, на основе включенных данных Uri. Установка типа MIME дополнительно определяет, какие виды действий должны получать намерения.

Например, если вы хотите отобразить изображение с помощью ACTION_VIEW Intent, вы должны указать тип MIME image/*. Это мешает (кому-то) делать что-то в приложениях, которые могут «просматривать» другие типы данных (например, приложение карты) от запуска по назначению.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...