Xamarin Android 7以编程方式安装APK

Xamarin Android 7以编程方式安装APK,第1张

概述我正在尝试安装我已经下载到Android7中的下载文件夹的.apk.我已经尝试过在许多StackOverflow帖子中推荐的方式,并使用FileProvider在这里https://inthecheesefactory.com/blog/how-to-share-access-to-file-with-fileprovider-on-android-nougat/en:Filefile=newFile(fileUr

我正在尝试安装我已经下载到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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1119582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存