私は私が使用してStackOverflowのポストの数に推奨される方法を試してみましたが、ここにhttps://inthecheesefactory.com/blog/how-to-share-access-to-file-with-fileprovider-on-android-nougat/enているAndroidの7のダウンロードフォルダにXamarinのAndroidは、プログラム的
をダウンロードしたの.apkをインストールしようとしていますAPKをインストール7+ FileProvider:
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
「 内容: "downloadUri"<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="." />
</paths>
210は次のようになります//com.package.name.com.package.name.provider/external_files/Download/Sensors%2520Multitool_1.3.0_apk-dl.com.apk "
インストールウィンドウがポップアップするときのエラーは、"パッケージの解析中に問題がありました "です。
私はこのパッケージをダウンロードフォルダに入れてインストールしても問題なくインストールできます。同じ問題で他の.apkも試しました。
保証された解決策ではありませんが、Android Oのapkビルドをダウンロードしているため、解析の例外が発生する可能性があります。これをチェックする可能性はありますか? –
私はapkがダウンロードしたフォルダにあるapkをクリックするだけで、それがインストールされていることを確認しました。これは正しくインストールされて実行されます。 –
@IulianPopescuあなたが何かに乗っている可能性があります。私はまだ別の.apk "esファイルエクスプローラ"を試しました。それがうまくいくかどうかをテストするだけです。なぜ、異なるアンドロイド版のアプリケーションがうまくいかないのか分かりますか? –