【发布时间】:2021-09-22 16:04:55
【问题描述】:
var bi = Settings.System.CanWrite(Android.App.Application.Context);
if (bi)
{
Console.WriteLine("IT HAS PERMISIONS`enter code here`");
}
else
{
Intent intent = new Intent(Android.Provider.Settings.ActionManageWriteSettings);
intent.SetData(Android.Net.Uri.Parse("package:" + Android.App.Application.Context.PackageName));
StartActivity(intent);
Console.WriteLine("doesnt have permisions");
}
我显然直接在 else 执行块中,但意图得到 null 有什么问题?我如何授予写入设置的权限?我将 xamarin 与 c# 一起用于 android mobile 并且已经插入到清单 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
【问题讨论】:
-
intent.SetData 是可选的。你试过不运行那条线吗?只是为了确保它运行
-
好的,我删除了 intent.SetData 并且它不再为空,但 var bi = Settings.System.CanWrite(Android.App.Application.Context);总是假的
-
你能检查一下包名是否正确吗?也许值得尝试手动添加它(不推荐)或使用类似Xamarin.Essentials
-
我从intent intent = {Intent { act=android.settings.action.MANAGE_WRITE_SETTINGS dat=package:com.companyname.lbp }} 得到这个,但没有启动