Flutter之请求权限(适配android)
导入第三方包
simple_permissions: ^0.1.9
官方文档
Android的修改
如果当前应用没有使用androidx引入v4包即可,代码无需修改
如果使用了androidx则需要引入androidx的包,需要修改代码(项目中原来引用的support-v4)
// build.gradle
dependencies{
implementation 'androidx.appcompat:appcompat:1.2.0'
}
// SimplePermissionsPlugin
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
申请权限
FlatButton(
onPressed: (){
print("申请权限--->");
getPlatformVersion().then((value) {
print("----> platformVersion:$value");
List<Permission> permissions = [Permission.ReadExternalStorage,Permission.WriteExternalStorage];
checkPermissions(permissions[0]).then((value){
if(value){
print("----> 检查权限成功:${permissions[0]}");
}else{
print("----> 检查权限失败:${permissions[0]}");
}
});
requestPermission(permissions[1]).then((value){
switch(value){
// android denied, authorized, deniedNeverAsk
case PermissionStatus.denied:
// 拒绝
print('----> 拒绝:${permissions[1]}');
break;
case PermissionStatus.authorized:
// 同意
print('----> 同意:${permissions[1]}');
break;
case PermissionStatus.deniedNeverAsk:
// 不再提示
print('----> 禁止后不再提示:${permissions[1]}');
break;
case PermissionStatus.notDetermined:
break;
case PermissionStatus.restricted:
break;
}
});
});
},
child: Text("申请权限"),
)