【问题标题】:how i can grant permission WRITE_SETTINGS我如何授予权限 WRITE_SETTINGS
【发布时间】: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" />

【问题讨论】:

  • thisthis 是否回答了您的问题?
  • 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 }} 得到这个,但没有启动

标签: c# android xamarin


【解决方案1】:
Intent intent = new Intent(Settings.ActionManageWriteSettings);
                            intent.SetData(Android.Net.Uri.Parse($"package:{Android.App.Application.Context.PackageName}"));
                            intent.AddFlags(ActivityFlags.NewTask);
                            Android.App.Application.Context.StartActivity(intent);

它适用于这个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 2016-08-24
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多