如何检测权限对话框被用户拒绝

Posted

技术标签:

【中文标题】如何检测权限对话框被用户拒绝【英文标题】:How to detect permission dialog is denied by user 【发布时间】:2021-07-07 03:56:34 【问题描述】:

我正在我的应用程序中实现从厨房拍照,为此我正在添加存储权限。 我正在使用 permission_handler 包向用户请求许可。它在 android 中运行良好,因为它管理用户状态,如永久拒绝等。 但是ios中的主要问题是用户拒绝或允许始终显示用户授予权限(意味着始终提供状态==已授予)

如果有人遇到同样的问题或我做错了什么,请提供帮助。

谢谢。

【问题讨论】:

你可以仔细阅读pub.dev/packages/permission_handler 【参考方案1】:

permission_handler: ^6.1.1 添加到您的 pubspec 文件中

导入

import 'package:permission_handler/permission_handler.dart';

在您的登录页面或main.dart 尝试调用此波纹管函数

bool storagePer = false;
    void storageCheck() async 
      var status = await Permission.storage.status;
      if (!status.isGranted) 
        await Permission.storage.request();
        storagePer = true;
        print('per: $storagePer');
      
    

要检查您是否有权限,请使用 status.isGranted 如果它返回 true => permissionGranted else denied

要申请许可,请使用此await Permission.storage.request();

【讨论】:

是的,你是对的“Aditya kontikal”,我使用它的方式相同。它对 android 工作正常,但对 iOS 提供唯一的 status.isGranted(用户拒绝或允许权限) 谢谢,我找到了解决方案,在 iOS 中,我将存储权限改为照片: - if (Platform.isIOS) status = await Permission.photos.request(); else if (Platform.isAndroid) status = await Permission.storage.request();

以上是关于如何检测权限对话框被用户拒绝的主要内容,如果未能解决你的问题,请参考以下文章

邮件访问被拒绝因为没有授权此用户远程登录什么意思

当用户在运行时权限对话框上单击拒绝时显示 DialogFragment

“对路径的访问被拒绝.” 是怎么回事

对话框“不再询问”的 Android M 权限问题

Android 打开相机权限被拒绝

即使在 Ar.js 中的浏览器中授予权限后,地理定位访问被拒绝弹出窗口也会显示