添加依赖
#权限
dependencies:
permission_handler: ^9.2.0
具体使用
1.在代码中添加自己具体需要动态申请的权限,权限动态申请场景是应对Android6.x以上的系统。iOS的权限申请还是参考源生的权限添加方式,在info.list中添加好对应的权限。
/// 申请定位权限
/// 授予定位权限返回true, 否则返回false
Future<bool> requestLocationPermission() async {
Map<Permission, PermissionStatus> statuses = await [
Permission.location,
Permission.storage,
Permission.camera,
].request();
//验证权限是否授权
var status = await Permission.location.status;
if (status == PermissionStatus.granted) {
//已经授权
return true;
} else {
}
}
在具体使用中,尤其是iOS端,如果没有第一次没有授权,后面是不会再弹出授权窗口的,所以此时需要在APP端打开设置,让用户自己去开启对应的权限:
//验证权限是否授权
var status = await Permission.location.status;
if (status == PermissionStatus.granted) {
//已经授权
return true;
} else {
//最好是在调用openAppSettings();之前加一个弹窗说明用户没有对应权限需要去设置页面开启
openAppSettings();
}