【发布时间】:2017-06-13 13:00:16
【问题描述】:
我尝试通过 Intent 共享应用的 apk 文件。我的清单文件中的提供程序:
`<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="package name"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/mypaths" />
mypaths 文件是:
<paths>
<external-path name="apk_folder"/>
</paths>
我将意图和文件路径设置如下:
String packageName = getContext().getPackageName();
PackageManager pm = getContext().getPackageManager();
String apk = null;
try {
ApplicationInfo ai = pm.getApplicationInfo(packageName, 0);
apk = ai.publicSourceDir;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
File apkFile = new File(apk);
Uri uri = FileProvider.getUriForFile(getContext(), "package name", apkFile);
Intent intent = ShareCompat.IntentBuilder.from(getActivity())
.setType("*/*")
.setStream(uri)
.setChooserTitle("Share via")
.createChooserIntent()
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
我得到 IllegalArgumentException :
未能找到包含 /data/app/package name.edu-1/base.apk 的已配置根
请帮我找出我的错误。
【问题讨论】:
标签: android android-intent apk android-fileprovider