【发布时间】:2018-05-28 20:46:50
【问题描述】:
在过去的几个小时里,我一直忙于让 FileProvider 工作以在其他应用程序中打开文件。在这个过程中的某个地方出现了问题,因为应用程序只是没有权限打开我放入 Intent 中的文件。我真的希望有人可以帮助我解决这个问题。
我的android编程知识不是很好。所以这可能只是一个非常愚蠢的错误
这是我的代码。
要打开一个文件,我这样做(fileToOpen 长度约为 300kb,因此文件被加载到变量中):
File fileToOpen = new File(Environment.getExternalStorageDirectory(), path);
Uri contentUri = FileProvider.getUriForFile(this, "me.albie.share", fileToOpen);
Intent openIntent = new Intent(Intent.ACTION_VIEW);
openIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
openIntent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
openIntent.setDataAndType(contentUri, "application/pdf");
openIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
PackageManager pm = this.getPackageManager();
if (openIntent.resolveActivity(pm) != null) {
this.startActivity(Intent.createChooser(openIntent, "Open file"));
}
清单文件中的提供者:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="me.albie.share"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
带有路径的xml文件
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="external_files" path="/"/>
</paths>
【问题讨论】:
标签: android