我正在尝试安装我已经下载到Android 7中的下载文件夹的.apk.
我已经尝试过在许多StackOverflow帖子中推荐的方式,并使用fileProvIDer在这里https://inthecheesefactory.com/blog/how-to-share-access-to-file-with-fileprovider-on-android-nougat/en:
file file = new file(fileUri);//using AndroID.Support.V4.Content;var downloadUri = fileProvIDer.GetUriForfile(context,context.ApplicationContext.Packagename + ".com.package.name.provIDer", file);Intent install = new Intent(Intent.ActionInstallPackage);install.AddFlags(ActivityFlags.GrantReadUriPermission);install.AddFlags(ActivityFlags.GrantWriteUriPermission);install.AddFlags(ActivityFlags.GrantPersistableUriPermission);install.SetDataAndType(downloadUri, "application/vnd.androID.package-archive");context.StartActivity(install);
AndroIDManifest.xml中
<uses-permission androID:name="androID.permission.INSTALL_PACKAGES" /><application androID:label="Settings" androID:icon="@drawable/Icon" androID:theme="@style/mytheme"> <provIDer androID:name="androID.support.v4.content.fileProvIDer" androID:authoritIEs="${applicationID}.com.package.name.provIDer" androID:exported="false" androID:grantUriPermissions="true"> <Meta-data androID:name="androID.support.file_PROVIDER_PATHS" androID:resource="@xml/provIDer_paths"/> </provIDer></application>
provIDer_paths.xml
<paths xmlns:androID="http://schemas.androID.com/apk/res/androID"> <external-path name="external_files" path="." /> </paths>
“downloadUri”如下所示:“content://com.package.name.com.package.name.provIDer/external_files/Download/Sensors%20Multitool_1.3.0_apk-dl.com.apk”
d出安装窗口时的错误是:“解析包时出现问题”.
我已经通过在downloads文件夹中单击它安装了这个软件包,它安装得很好,我也尝试了其他.apk的相同问题.
解决方法:
file file = new file(fileUri);if(Build.VERSION.SdkInt >= Build.VERSION_CODES.N) { Uri apkUri = fileProvIDer.GetUriForfile(context, context.ApplicationContext.Packagename + ".provIDer", toInstall); Intent intentS = new Intent(Intent.ActionInstallPackage); intentS.SetData(apkUri); intentS.SetFlags(ActivityFlags.GrantReadUriPermission); context.StartActivity(intentS);} else { Uri apkUri = Uri.Fromfile(toInstall); Intent intentS = new Intent(Intent.ActionVIEw); intentS.SetDataAndType(apkUri, "application/vnd.androID.package-archive"); intentS.SetFlags(ActivityFlags.NewTask); context.StartActivity(intentS);}
总结 以上是内存溢出为你收集整理的Xamarin Android 7以编程方式安装APK全部内容,希望文章能够帮你解决Xamarin Android 7以编程方式安装APK所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)