flutter是跨平台的移动技术,当然也摆脱不了设备的授权问题,如android 设备中清单文件里的各种权限配置,以及到Android 6.0 的动态权限配置,Flutter也有相对应的功能要处理。接下来基于Android系统读写SD的权限做一个简单的讲解。(相关IOS的权限请自行查阅)
1.清单文件配置权限
找到Android模块的清单文件,配置对应的sd卡权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2.配置动态权限,现在Android手机设备几乎全都是6.0以上的系统,所以免不了要配置动态权限。在flutter中,我们使用permission_handler: ^3.2.0 插件给大家演示效果。动态权限也分为几个部分;
/*** 检查是否有相关权限*/void checkPermissionStatus() {final Future<PermissionStatus> statusFuture =PermissionHandler().checkPermissionStatus(PermissionGroup.storage);statusFuture.then((PermissionStatus status) {setState(() {_permissionStatus = status;});});}
/*** 请求系统权限,让用户确认授权*/Future requestPermission() async {List<PermissionGroup> permissions = <PermissionGroup>[PermissionGroup.storage];Map<PermissionGroup, PermissionStatus> permissionMap =await PermissionHandler().requestPermissions(permissions);setState(() {_permissionStatus = permissionMap[PermissionGroup.storage];});}
@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("检查读写SD卡权限"),),body: Column(children: <Widget>[RaisedButton(child: Text("检查是否拥有权限--读写外部卡"),onPressed: checkPermissionStatus,),Text("检查权限结果:" + hasPermissionText(_permissionStatus),),RaisedButton(child: Text("请求权限"),onPressed: requestPermission,),Text("获取权限结果:" + getPermissionResult(_permissionStatus),)],),);}
本文发布于:2024-02-05 02:01:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170721516362010.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |