
HarmonyOS Sample 之 Permission 原创
目录
Permission 样例
介绍
应用权限是程序访问操作某种对象的许可。
在开发应用时会涉及系统的权限,这些权限需要用户授权才可以使用,以便系统化地规范各类应用程序的行为准则与权限许可。
本示例演示了获取位置、麦克风录音、读取日历数据、读取用户存储数据的权限申请,并通过访问相关业务确认授权是否成功。
今天来一起学习一下官方提供的Permission样例
搭建环境
安装DevEco Studio,详情请参考DevEco Studio下载。
设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:
如果可以直接访问Internet,只需进行下载HarmonyOS SDK操作。
如果网络不能直接访问Internet,需要通过代理服务器才可以访问,请参考配置开发环境。
按照下面可以导入该样例。
然后找到Permission,导入项目即可。当然也可以自己去 下载 然后再打开项目。
代码结构解读
文件不多,'#'代表注释
页面布局
布局就一个页面,很简单,不多讲了,重点在业务逻辑。
业务逻辑
1.config.json
首先要在config.json声明需要用户授权哪些权限,具体是在abilities 数组块下面添加reqPermissions数组
当然,你也可以把config.json切换至可视化窗口,这样可以根据提示进行添加。
2.MainAbility.java
该类重写了onRequestPermissionsFromUserResult方法,用来显示用户授权结果
3.MainAbilitySlice.java
该类实现了Component.ClickedListener接口,重写onClick方法,用来实现根据不同按钮组件的监听处理,
例如:点击获取位置授权按钮,调用accessLocation()方法
定义请求权限的通用方法 和 showTips方法。
通过业务来触发几种权限的具体方法
获取位置
麦克风录音,需要用到 AudioStreamInfo / AudioCapturerInfo / AudioCapturer
获取日历数据
获取Media存储数据,
如果发生远程进程异常会抛出DataAbilityRemoteException 异常
这就是所有的业务逻辑了
4.Constants.java
定义权限请求码常量,
这里要说明的是权限名称是系统定义好的,在SystemPermission中有很多,用的时候去查看就好。自定义的权限请求码是为了满足业务逻辑的需要。
效果展示
用ScreenToGif录制了gif,小工具还挺好用的。
可以去应用管理查看应用的授权信息
完整代码
下载附件
