Fileprovider为pdf

时间:2019-04-05 12:54:46

标签: android pdf uri android-fileprovider

我已将pdf名称保存在数据库中。现在,我想通过单击一个按钮来打开该pdf。我使用了文件提供程序来打开它,该文件管理器可以打开google驱动器,但由于存储路径错误而无法显示pdf。

我已经设置了必要的标志。

将打开pdf的按钮:

pdfindie.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator +
                        pdfindie.getText().toString());
                Uri path = getUriForFile(getApplicationContext(), "com.example.fernweh_fuck_off.MyFileProvider", file);
                Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW);
                pdfOpenintent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                pdfOpenintent.setDataAndType(path, "application/pdf");
                try {
                    startActivity(pdfOpenintent);
                } catch (ActivityNotFoundException e) {

                }
            }
        });

提供程序的清单文件:

  <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.example.fernweh_fuck_off.MyFileProvider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>

我得到的路径:

D/error: file :    /storage/emulated/0/Download/0504348.pdf
D/error: uri path :    content://com.example.fernweh_fuck_off.MyFileProvider/external/Download/0504348.pdf

我需要的路径:

content://com.android.providers.downloads.documents/document/34

0 个答案:

没有答案