Как создать контент-провайдер для совместного использования PDF-файла через неявное намерение другого приложения? - PullRequest
0 голосов
/ 24 марта 2020

Я делаю проект для своей школы. В этом приложении я загружаю PDF-файлы из Firebase и сохраняю их во внешнем каталоге приложения. После загрузки я хочу через неявное намерение другого приложения для чтения PDF показать загруженный PDF. Я два дня подряд искал в Интернете, как создать провайдера контента, но все учебники устарели и использовали провайдера контента android .support.v4, и я не знаю, как создать провайдера нестандартного контента. Я попытался использовать androidx.core.content.fileprovider, и он также создал контент URI, но при запуске экран чтения PDF-файлов появляется, но ничего не отображается, отображается только заголовок файла.

вывод fileUri.toString- content: //com.syrous.studentlibraryjava.fileprovider/document/mse1_dagaeg.pdf

    Uri fileUri = getUriForFile(getApplicationContext(), getPackageName()+".fileprovider", localFile); //This is the in build function, just accepted import. 
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(fileUri, "application/pdf");
    i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);

Вот объявление провайдера в манифесте ---->

 <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.syrous.yccestudentlibraryjava.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths"/>
    </provider>

Здесь это file_paths ----->

  <paths>
    <external-files-path
        name="document"
        path="mse1/"/>
  </paths>

Я не уверен, если я объявил правильный file_path. У меня есть PDF-файл внутри external_folder / files / mse1 / file_to_open. Если есть какие-либо исправления в file_path, пожалуйста, предложите мне.

У меня есть разрешение на чтение и запись внешнего хранилища, объявленного в манифесте, а также запросил его

Помогите мне, ребята !! Изображение эмулятора

1 Ответ

0 голосов
/ 24 марта 2020

android:authorities="com.syrous.yccestudentlibraryjava.fileprovider не мах content://com.syrous.studentlibraryjava.fileprovider/document/mse1_xfaefga.pdf.

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