3

我正在使用权限插件来检查权限状态并在它们处于deny状态时请求它们。但每次从第一次开始,手机和存储的权限状态都是notAgain。因此,我无法请求用户授予phoneand的权限storage。我也在我的 android 清单文件中指定了它们。

这是检查和请求权限的代码片段

List<Permissions> permissions = await Permission.getPermissionStatus([PermissionName.Location, PermissionName.Phone, PermissionName.Storage]);
    permissions.forEach((permission) {
      if(permission.permissionStatus.toString().contains('deny') ){
        neededPermissions.add(permission.permissionName);
      }
    });
if(neededPermissions.length > 0){
      requestPermissions(neededPermissions);
    }

我不明白为什么他们是notAgain从第一次启动应用程序开始的

4

2 回答 2

0

我已经编辑了这个答案,希望有人会觉得它有帮助。万一有人为此苦苦挣扎。这个包permission_handler 提供了很好的实用程序来正确处理权限。它最近已更新为包含isPermanentlyDenied与 Android 上的“不再询问”相同的标志。

于 2019-05-05T13:05:42.737 回答
0

也许您的调用请求权限两次,在 initState() 中调用请求权限用于启动请求。

@override
void initState() {
super.initState();

requestPermission();

  }

requestPermission() async {
final res = await SimplePermissions.requestPermission(
    Permission.WriteExternalStorage);
print("permission request result is " + res.toString());

}

于 2019-05-13T17:16:44.113 回答