Xamarin Android 7以编程方式安装APK
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Xamarin Android 7以编程方式安装APK,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2325字,纯文字阅读大概需要4分钟。
内容图文
![Xamarin Android 7以编程方式安装APK](/upload/InfoBanner/zyjiaocheng/789/8512f73b0f9b479b95079b055b0f5bb2.jpg)
我正在尝试安装我已经下载到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”
弹出安装窗口时的错误是:“解析包时出现问题”.
我已经通过在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所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。