android - 无法访问远程 .apk 文件
问题描述
我正在向我的应用程序添加更新功能,该应用程序必须检查远程服务器上的 .apk 文件是否较新。但我的问题是文件提供者无法访问它。
.apk 文件在该位置可用,我可以使用浏览器下载它。
这是我使用的代码,可在 stackoverflow 的帖子中找到:
文件访问代码:
Java.IO.File f = new Java.IO.File(@"http://XX.XXX.XX.XXX/WsAgro/MAJ/XXXXXXX.apk");
var downloadUri = FileProvider.GetUriForFile(this, "com.example.unity.fileprovider", f);
Intent i = new Intent(Intent.ActionInstallPackage);
i.SetDataAndType(downloadUri, "application/vnd.android.package-archive");
i.AddFlags(ActivityFlags.GrantReadUriPermission);
i.AddFlags(ActivityFlags.GrantWriteUriPermission);
i.AddFlags(ActivityFlags.GrantPersistableUriPermission);
StartActivity(i);
清单(我在搜索问题时尝试了很多权限):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="1.0.2" package="Akanea.TPAndroid" android:installLocation="auto">
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application>
<provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.unity.fileprovider" android:grantUriPermissions="true" android:exported="false">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
</provider>
</application>
提供者路径:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="." />
</paths>
</configuration>
这里例外:
谢谢您的帮助。
解决方案
推荐阅读
- java - 常量池中的无效字节标记:19 错误消息
- ckeditor - Liferay 7 中的视频功能
- java - LWJGL3 中的第三人称摄像机移动
- c# - 如何根据 Selenium(C#)中的用户类型通过 SWITCH 验证各种选项
- javascript - jQuery onchange sum 不能限制输入类型数
- java - 在 Java JDBC 中将行插入没有更新方法的 ResultSet
- csv - Grails 在上传 csv 以保存现有 id 的域对象时抛出异常
- networking - 无法从 GCP 命令行 ping 本地服务器 - 要打开哪个防火墙端口?
- javascript - 在 Tampermonkey 中实现 clippyjs
- node.js - 将 Gremlin 的字符串命令转换为可执行文件