【发布时间】:2020-08-21 18:10:57
【问题描述】:
我正在尝试创建 Xamarin 跨平台应用,Android 版本需要位置访问权限。如果用户选择“不再询问”复选框拒绝位置权限,Android 不会再次提示位置访问。用户必须从电话设置中手动提供访问权限。
有没有办法检查用户是否从 MainActivity.cs 以外的页面中选择了“不再询问”?当用户再次登录时,如果用户选择了“不再询问”,我想向用户显示警报。
我发现 ShouldShowRequestPermissionRationale() 是确定用户是否选择了 “不再询问” 的唯一方法。但似乎只能从 MainActivity.cs 调用此方法。
【问题讨论】:
-
我阅读了您在下面的帖子中分享的链接,但我仍然不清楚在另一个活动中实施 (ShouldShowRequestPermissionRationale(Manifest.Permission.WriteExternalStorage))。可以发个例子吗?
-
你只需要在activity中调用
ActivityCompat.ShouldShowRequestPermissionRationale方法,例如,有两个activity,一个是MainActivity,我需要在第二个activity(ActivityB)中检查权限,我只需要调用ActivityB中的方法直接 -
感谢您的回复!我在 Mainactivity.cs 中使用了 ActivityCompat.ShouldShowRequestPermissionRationale 方法,并从另一个活动中调用它。但我收到一条错误消息 - “非静态字段、方法或属性 'Activity.ShouldShowRequestPermissionRationale(string)' 需要对象引用”。我还缺少什么吗?
-
尝试使用
ShouldShowRequestPermissionRationale(permission)或ActivityCompat.ShouldShowRequestPermissionRationale(activity,permission) -
我正在尝试从 另一个 .cs 文件调用 MainActivity.cs 中定义的
ShouldShowRequestPermissionRationale(permission),而不是带有if (ActivityCompat.ShouldShowRequestPermissionRationale(Android.Manifest.Permission.AccessCoarseLocation)) { }的 MainActivity.cs。但它会抛出一个错误 - “名称 'ActivityCompat' 在当前上下文中不存在”
标签: android xamarin.forms xamarin.android permissions android-permissions