当前位置:首页 > 行业动态 > 正文

关于Android 6.0权限设置的疑问解答

在Android 6.0(API级别23)中,引入了动态权限的概念。应用在安装时默认禁止敏感权限,如相机、麦克风等。运行时需通过用户授权来获取这些权限,开发者需在代码中检查并请求权限,确保用户体验与隐私安全平衡。

Android 6.0权限设置

一、

随着Android 6.0(API level 23,Marshmallow)的发布,Google引入了新的运行时权限机制,旨在更好地保护用户隐私和安全,这一变化打破了以往应用在安装时一次性授予所有权限的模式,改为在应用运行时动态请求所需权限。

二、权限分类

1、Normal Permissions:这类权限不涉及用户隐私,通常不会对用户造成不良影响,例如网络访问、手机震动等,这些权限在应用安装时自动授予,无需用户手动确认。

2、Dangerous Permissions:涉及用户隐私或可能对设备造成影响的权限,例如读取联系人、发送短信、访问相机等,这些权限必须在应用运行时由用户明确授权。

关于Android 6.0权限设置的疑问解答

三、权限申请流程

1、检查权限是否已被授予:在需要请求权限之前,首先通过ContextCompat.checkSelfPermission()方法检查应用是否已经获得了该权限。

2、请求权限:如果权限未被授予,则通过ActivityCompat.requestPermissions()方法向用户请求权限,这个方法会弹出一个系统对话框,让用户选择是否授予权限。

3、处理用户响应:用户选择后,系统会回调onRequestPermissionsResult()方法,在这个方法中,根据用户的选择(授予或拒绝)执行相应的逻辑。

关于Android 6.0权限设置的疑问解答

四、单元表格示例

权限组 权限名称 是否需要动态申请
CONTACTS READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
PHONE READ_CALL_LOG
CALL_PHONE
ADD_VOICEMAIL
CALENDAR READ_CALENDAR
WRITE_CALENDAR
CAMERA CAMERA
SENSORS BODY_SENSORS
LOCATION ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
STORAGE READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
MICROPHONE RECORD_AUDIO
SMS READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
SEND_SMS

五、相关问题与解答

1、:为什么Android 6.0要引入运行时权限机制?

:Android 6.0引入运行时权限机制主要是为了增强用户隐私和数据安全,通过让用户在应用运行时动态授权,可以确保用户更加清晰地了解自己的权限被哪些应用使用,从而避免不必要的权限泄露风险。

2、:如何处理用户拒绝权限请求的情况?

关于Android 6.0权限设置的疑问解答

:当用户拒绝权限请求时,可以在onRequestPermissionsResult()方法中处理逻辑,如果用户选择了“不再询问”,则下次申请相同权限时不会再次弹出提示框,可以通过调用shouldShowRequestPermissionRationale()方法来判断是否应该向用户解释为什么需要这个权限,并引导用户去设置页面手动开启权限。