requestPermissions static method
Future<PermissionStatus>
requestPermissions(
- List<
Permission> permissions, { - SuccessCallBack? success,
- DeniedCallBack? denied,
- OtherCallBack? other,
请求获取多个权限
Permission 请求的权限
success 授权成功回调
denied 授权失败回调; isPermanentlyDenied 是否永久拒绝
other 其他回调
Implementation
static Future<PermissionStatus> requestPermissions(
List<Permission> permissions, {
SuccessCallBack? success,
DeniedCallBack? denied,
OtherCallBack? other,
}) async {
// 请求权限
Map<Permission, PermissionStatus> map = await permissions.request();
// 遍历权限
for (Permission key in map.keys) {
var status = map[key];
if (status == PermissionStatus.granted) {
// 只有全部权限都被授权,才返回成功
} else if (status == PermissionStatus.denied || status == PermissionStatus.restricted) {
// 若有一个权限被拒绝,则返回失败
denied?.call(status!.isPermanentlyDenied);
return status!;
} else {
// 若有其他情况,则返回其他
other?.call(status!);
return status!;
}
}
success?.call();
return PermissionStatus.granted;
}