Android 即使在首次启动时,颤振权限状态也不会增加

Android 即使在首次启动时,颤振权限状态也不会增加,android,flutter,android-permissions,flutter-plugin,Android,Flutter,Android Permissions,Flutter Plugin,我使用插件来检查权限状态,如果它们处于deny状态,则请求它们。但每次从第一次开始,手机和存储设备的权限状态都是notAgain。因此,我无法请求用户授予手机和存储的权限。我也在我的android清单文件中指定了它们 下面是检查和请求权限的代码片段 List<Permissions> permissions = await Permission.getPermissionStatus([PermissionName.Location, PermissionName.Phone, Pe

我使用插件来检查权限状态,如果它们处于
deny
状态,则请求它们。但每次从第一次开始,手机和存储设备的权限状态都是
notAgain
。因此,我无法请求用户授予
手机
存储
的权限。我也在我的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);
    }
List permissions=wait Permission.getPermissionStatus([PermissionName.Location,PermissionName.Phone,PermissionName.Storage]);
权限。forEach((权限){
if(permission.permissionStatus.toString()包含('deny')){
neededPermissions.add(permission.permissionName);
}
});
如果(neededPermissions.length>0){
请求权限(neededPermissions);
}

我不明白为什么他们从第一次发布应用程序时就没有获得
。
以防有人为此而挣扎。这个包裹

提供强大的实用程序来正确处理权限。它最近被更新为包含
isPermanentlyDenied
标志,该标志与Android上的“不再询问”相同。

可能是您的呼叫请求权限两次,对于启动请求,在initState()内调用请求权限

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

requestPermission();

  }

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

}

我不知道为什么这样可以解决问题。。。无论如何,getPermissionStatus不再输出意味着弹出窗口不会出现。。。至少这对我来说意味着。。。但我仍然非常希望找到这个问题的解决方案。你能解决这个问题吗?我真的需要,以完成我的应用程序。。。现在,我正在使用simple_permissions plugin(),对插件代码进行一些更改。它很适合我的需要。