如何解决无法在 Xamarin 应用程序上找到具有权限的提供程序的元数据
我有一个致命的异常 无法找到具有权限错误的提供者的元数据。 Stackoverflow 中有很多示例 - 但我不确定它们是否来自 Xamarin 应用程序。我无法为我的 Xamarin 表单应用程序应用为 Android Studio/Java 建议的相同解决方案。所以请不要将其标记为重复。希望得到一些帮助。
这是我的清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.SV.Workshop" android:installLocation="auto">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<application android:label="Launcher.Android" android:theme="@style/MainTheme"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
</manifest>
这是我的函数,可能会引发此异常
public static void Install(string file)
{
Intent install = new Intent(Intent.ActionInstallPackage);
Android.Net.Uri filePath = FileProvider.GetUriForFile(Application.Context,"com.SV.Workshop",new Java.IO.File(file));
Application.Context.GrantUriPermission(Application.Context.PackageName,filePath,ActivityFlags.GrantReadUriPermission);
install.SetDataAndType(filePath,"application/vnd.android.package-archive");
install.SetFlags(ActivityFlags.ClearTask | ActivityFlags.NewTask);
install.AddFlags(ActivityFlags.GrantReadUriPermission);
Application.Context.StartActivity(install);
}
从 MainPage.xml.cs 按钮单击活动调用上述函数。单击按钮是尝试安装另一个 .apk
按钮点击功能
private void Install_Clicked(object sender,EventArgs e)
{
Device.BeginInvokeOnMainThread(async () =>
{
IInstall iInstall = DependencyService.Get<IInstall>(DependencyFetchTarget.GlobalInstance);
iInstall.InstallAPK(name);
});
}
接口实现
[assembly: Xamarin.Forms.Dependency(typeof(Install))]
namespace DependencyApp.Droid
{
public class Install : Launcher.IInstall
{
public void InstallAPK(string fn)
{
MainActivity.InstallClicked(fn);
}
}
}
public interface IInstall
{
void InstallAPK(string fiName);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。