Диск не открывается pdf - PullRequest
0 голосов
/ 18 июня 2020

Вариант использования: Открыть pdf (присутствует во внутренней памяти в каталоге имен моего приложения) в android через любое приложение для чтения PDF-файлов, присутствующее на устройстве (например, GDrive).

     intent = new Intent(Intent.ACTION_VIEW);
                            intent.setDataAndType(Uri.fromFile(file), "application/pdf");
                            intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
       context.startActivity(intent);

Проблема Согласно моему текущему анализу, он отлично работает на устройствах android 9 и ниже, но создает проблему в Android 10.

Что происходит: Имя PDF-файла отображается в заголовке программы просмотра PDF-файлов Gdrive, но PDF-файл не отображается. и возвращает в мое приложение.

Устройства, которые создают проблемы: Samsung s 10 (не знает android версию), One plus A6000 (Android 10), Samsung A70 (не знает android версия), Nokia 6.1 plus (Android 10), OnePlus 6T (не знает версию android)

Хотя есть устройства, которые работают на android 10 и не создают проблем.

Устройства, которые не создают проблемы: Samsung GalaxyS20 (Android 10)

Также есть несколько устройств, которые ранее не создавали проблемы с android 10 и недавно начали создавать проблему, и наоборот (т.е. проблема была исправлена ​​автоматически).

Эта проблема довольно запутанная, и я не могу найти причину root.

Что я пробовал 1. Проверенные журналы: ошибки / исключения не зарегистрированы

Проверенный код результата намерения, также нет проблем. Разрешения: В приложении: Разрешение на носители, камеру и хранилище: включено На диске: Хранилище разрешение: включено

Я также прочитал документацию android 10.

Чтобы разрешить другим приложениям доступ к файлам, хранящимся в этом каталоге во внутренней памяти, используйте FileProvider с атрибутом FLAG_GRANT_READ_URI_PERMISSION.

     intent = new Intent(Intent.ACTION_VIEW);
                            intent.setDataAndType(Uri.fromFile(file), "application/pdf");
                            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION|Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
Нет проблем с pdf, потому что, открывая тот же PDF-файл с помощью другого PDF-ридера (например, Adobe), он работает безупречно.

В настоящее время приложение

   compileSdkVersion 28
    minSdkVersion 19
    targetSdkVersion 28

Я просто хочу решить эту проблему. У меня несколько вопросов:

  1. Действительно ли это какая-то проблема с android 10 или проблема только с моим кодом?

  2. Делает ли приложение, совместимое с android 10, решит эту проблему?

  3. Как я могу отладить его?

Если я пропустил какой-либо случай, пожалуйста дай мне знать. Заранее спасибо.

...