C# 如何显示自定义权限消息

C# 如何显示自定义权限消息,c#,xamarin.forms,C#,Xamarin.forms,我想向用户显示自定义消息以获得应用权限。我正在使用Plugin.Permissions获取应用程序权限。当我运行当前代码并运行应用程序时,此弹出消息显示允许{App Name}访问此设备位置?。下面是我目前正在使用的函数 public static async Task<bool> GetPermissions() { bool permissionsGranted = true; var permissionsStartList = new List<Per

我想向用户显示自定义消息以获得应用权限。我正在使用
Plugin.Permissions
获取应用程序权限。当我运行当前代码并运行应用程序时,此弹出消息显示
允许{App Name}访问此设备位置?
。下面是我目前正在使用的函数

public static async Task<bool> GetPermissions()
{
    bool permissionsGranted = true;

    var permissionsStartList = new List<Permission>()
    {
        Permission.Location,           
        Permission.Camera
    };

    var permissionsNeededList = new List<Permission>();
    try
    {
        foreach (var permission in permissionsStartList)
        {
            var status = await CrossPermissions.Current.CheckPermissionStatusAsync(permission);
            if (status != PermissionStatus.Granted)
            {
                permissionsNeededList.Add(permission);
            }
        }
    }
    catch (Exception ex)
    {
    }

    var results = await CrossPermissions.Current.RequestPermissionsAsync(permissionsNeededList.ToArray());

    try
    {
        foreach (var permission in permissionsNeededList)
        {
            var status = PermissionStatus.Unknown;
            //Best practice to always check that the key exists
            if (results.ContainsKey(permission))
                status = results[permission];
            if (status == PermissionStatus.Granted || status == PermissionStatus.Unknown)
            {
                permissionsGranted = true;
            }
            else
            {
                permissionsGranted = false;
                break;
            }
        }
    }
    catch (Exception ex)
    {
    }
    return permissionsGranted;
}
公共静态异步任务GetPermissions() { bool permissionsGranted=true; var permissionsStartList=新列表() { 许可,地点, 允许,摄像机 }; var PermissionsNeedList=新列表(); 尝试 { foreach(permissionsStartList中的var权限) { var status=await CrossPermissions.Current.CheckPermissionStatusAsync(权限); if(status!=PermissionStatus.grated) { PermissionsNeedList.Add(权限); } } } 捕获(例外情况除外) { } var results=await CrossPermissions.Current.RequestPermissionsAsync(permissionsNeedList.ToArray()); 尝试 { foreach(权限需求列表中的var权限) { var状态=许可状态。未知; //始终检查密钥是否存在的最佳实践 if(结果。容器(许可)) 状态=结果[权限]; 如果(状态==PermissionStatus.grated | |状态==PermissionStatus.Unknown) { permissionsGranted=真; } 其他的 { permissionsGranted=false; 打破 } } } 捕获(例外情况除外) { } 返回许可证; }
感谢您的帮助和评论

遗憾的是,无法自定义权限对话框中的文本

这些是系统对话框,应用程序无法控制其内容

引自

当您的应用程序从checkSelfPermission()接收到权限被拒绝时,您需要提示用户获取该权限。Android提供了几种可用于请求权限的方法,如requestPermissions(),如下面的代码段所示调用这些方法会弹出一个标准的Android对话框,您无法自定义该对话框。

向用户显示的方式取决于设备的Android版本以及应用程序的目标版本,如权限概述所述。


遗憾的是,无法自定义权限对话框中的文本

这些是系统对话框,应用程序无法控制其内容

引自

当您的应用程序从checkSelfPermission()接收到权限被拒绝时,您需要提示用户获取该权限。Android提供了几种可用于请求权限的方法,如requestPermissions(),如下面的代码段所示调用这些方法会弹出一个标准的Android对话框,您无法自定义该对话框。

向用户显示的方式取决于设备的Android版本以及应用程序的目标版本,如权限概述所述。


在iOS中,您可以自己更改描述,您可以参考。但是,您不能更改消息的标题,因为它是由系统定义的。在iOS中,您可以自己更改描述,您可以参考。但是,您不能更改消息的标题,因为它是由系统定义的。