首页 > 解决方案 > 无法访问远程 .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>

这里例外:

在此处输入图像描述

谢谢您的帮助。

标签: androidxamarinandroid-fileprovider

解决方案


推荐阅读