runtimepermission
在Android系统中,自API 23( Marshmallow 版本)开始,引入了一项名为“运行时权限”(Runtime Permissions)的重要安全机制。这个机制改变了之前版本中一次性请求所有权限的方式,使得应用在运行时根据需要来请求用户授权特定的敏感权限。"runtimepermission"工具类就是为了解决这一问题而设计的,它帮助开发者更方便地处理运行时权限的检查和请求。 在Android 6.0及更高版本中,以下几类权限被视为危险权限,需要在运行时进行请求: 1. 读取联系人数据(READ_CONTACTS) 2. 写入联系人数据(WRITE_CONTACTS) 3. 读取日历数据(READ_CALENDAR) 4. 写入日历数据(WRITE_CALENDAR) 5. 拍照、录制视频(CAMERA) 6. 访问位置信息(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION) 7. 录音(RECORD_AUDIO) 8. 读取通话状态和呼叫日志(READ_CALL_LOG, WRITE_CALL_LOG) 9. 修改或删除存储卡中的内容(READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE) 10. 发送短信(SEND_SMS) 11. 直接拨打电话号码(CALL_PHONE) `runtimepermission`工具类通常会包含以下功能: 1. **权限检查**:检查应用是否已经获得了某个或某些权限。这可以通过调用`ContextCompat.checkSelfPermission()`方法并传入上下文和权限字符串来实现。 2. **权限请求**:如果检查发现权限未被授予,工具类会调用`ActivityCompat.requestPermissions()`发起请求,并提供一个回调方法(通常重写`onRequestPermissionsResult()`)来处理用户的响应。 3. **权限解释**:在请求权限前,工具类可能还会包含对用户解释为何需要该权限的功能,以增加用户同意授权的可能性。 4. **权限分组处理**:某些权限属于同一权限组,如存储权限。若用户拒绝了一个权限,可能会影响到整个权限组。工具类可以处理这些情况,确保所有必要的权限都被正确处理。 5. **权限多态处理**:考虑到不同Android版本间的差异,工具类需要适配不同的API级别,确保在旧版本系统上也能正常工作。 6. **权限状态监听**:工具类还可以提供一个接口,让开发者可以监听权限状态的变化,以便在权限状态改变时做出相应操作。 7. **批量请求**:对于需要多个权限的情况,工具类可以一次性请求多个权限,减少用户交互次数。 在实际开发中,`runtimepermission`工具类能够简化权限管理的代码,提高代码的可读性和复用性,同时避免了因不当处理权限导致的程序崩溃或功能受限问题。因此,对于任何针对Android 6.0及以上版本的应用来说,这样的工具类都是不可或缺的一部分。
- 1
- 阿牛李2018-04-26可以参考用于安卓6以后软件读写权限的申请。
- 粉丝: 142
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助