Ash*_*tav 10 android android-permissions flutter
我用flutter创建了一个android应用程序,我在应用程序运行时第一次创建权限请求,所以当用户点击拒绝然后点击登录按钮时,再次请求权限。我收到这个错误
Exception has occurred.
PlatformException (PlatformException(ERROR_ALREADY_REQUESTING_PERMISSIONS, A request for permissions is already running, please wait for it to finish before doing another request (note that you can request multiple permissions at the same time)., null))
Run Code Online (Sandbox Code Playgroud)
这是我的代码
@override
void initState() {
this.setSharedPreferences();
PermissionHandler().checkPermissionStatus(PermissionGroup.location).then(_checkPermission);
}
void _checkPermission(PermissionStatus status){
if(status == PermissionStatus.unknown || status == PermissionStatus.denied){
_askPermission();
}
}
void _askPermission() async{
await PermissionHandler().requestPermissions([PermissionGroup.location]);
}
void onLogin() async {
PermissionStatus locationPermission = await PermissionHandler().checkPermissionStatus(PermissionGroup.location);
if(locationPermission == PermissionStatus.denied || locationPermission == PermissionStatus.unknown){
_askPermission();
}else{
// user available to login
}
}
Run Code Online (Sandbox Code Playgroud)
如何处理?感谢您的回答
Nad*_*que 10
问题是当它检查权限时,它返回 null 而不是任何权限状态,这会导致异常。可能是多人填写了与位置权限相关的问题的错误。
https://github.com/BaseflowIT/flutter-geolocator/issues/172
https://github.com/BaseflowIT/flutter-geolocator/issues/
https://github.com/BaseflowIT/flutter-permission-handler/issues
void getPermissionStatus() async {
PermissionStatus permission = await PermissionHandler()
.checkPermissionStatus(PermissionGroup.storage);
if (permission == PermissionStatus.granted) {
} // ideally you should specify another condition if permissions is denied
else if (permission == PermissionStatus.denied ||
permission == PermissionStatus.disabled ||
permission == PermissionStatus.restricted) {
await PermissionHandler().requestPermissions([PermissionGroup.storage]);
getPermissionStatus();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为您的代码没有问题,无论如何您可以使用递归而不是创建两个单独的函数。
| 归档时间: |
|
| 查看次数: |
6410 次 |
| 最近记录: |