android 6.0权限 郭霖,Android6.0 运行时权限

本文详细介绍Android 6.0中引入的RuntimePermission机制,包括其工作原理、如何在应用中实现权限检查与请求流程,以及一些封装技巧。同时,列举了Android 6.0中的危险权限及其作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android6.0中为提高用户安全性,加入了RuntimePermission。对部分高危权限进行进一步的限制。

RuntimePermission特点:

targetSDK版本低于Android23,程序安装时会默认授权所有在清单文件中注册的权限,不需要运行时权限。

App是从低版本兼容,升级而来,程序拥有低版本时授权的所有权限。

申请授权运行时权限:

检查权限是否被授权:

ContextCompat.checkSelfPermission(context,permission)

Permission: Manifest.permission.

Return:

PackageManager.PERMISSION_DENIED 权限未被授权

PackageManager.PERMISSION_GRANTED 权限已被授权

请求授权:

ActivityCompat.requestPermissions(activity,permissions,requestCode);

权限授权回调:

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

}

RuntimePermission封装:

运行时权限与Activity是高度耦合的,方法的使用需要Activity作为参数,回调需要重写Activity中的方法。对RuntimePermission进行封装,有几种方式:

使用一个透明的Activity,将RuntimePermission相关操作封装,在需要使用时直接调用,调用结束finish掉该Activity。

使用Fragment,将Fragment添加到当前Activity中,Fragment本身无大小。RxPermissions。

在BaseActivity中封装RuntimePermission相关方法。用回调实现是否授权成功后的操作。在非Activity中调用,可以创建ActivityCollector类获取TopActivity传入方法。

Android6.0危险权限:

权限组

权限名称

权限效果

CALENDAR

READ_CALENDAR

读取日历

WRITE_CALENDAR

写入日历

CAMERA

CAMERA

相机拍照

CONTACTS

READ_CONTACTS

读取联系人

WRITE_CONTACTS

写入联系人

GET_ACCOUNTS

获取手机号码

LOCATION

ACCESS_FINE_LOCATION

获取精确位置

ACCESS_COARSE_LOCATION

获取大概位置

MICROPHONE

RECORD_AUDIO

录音

PHONE

READ_PHONE_STATE

读取通话状态

CALL_PHONE

拨出电话

READ_CALL_LOG

读取通话记录

WRITE_CALL_LOG

写入通话记录

ADD_VOICEMAIL

新增语音留言

USE_SIP

使用SIP网络电话

PROCESS_OUTGOING_CALLS

存取拨出电话

SENSORS

BODY_SENSORS

读取体感资料

SMS

SEND_SMS

发送短信

RECEIVE_SMS

接收短信

READ_SMS

读取短信

RECEIVE_WAP_PUSH

接收WAP推送信息

RECEIVE_MMS

接收多媒体短信

STORAGE

READ_EXTERNAL_STORAGE

读取外部存储

WRITE_EXTERNAL_STORAGE

写入外部存储

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值