前言 Android6.0代号棉花糖。尽管是在15年I/O大会上Google被正式发布的了。但是看看大多数人的项目中大家的 targetSdkVersion 是不是还都用的22。大家都认为6.0+的市场占有率还没那么高。那么就请看谷歌2017年9月份公布的版本分布图。 从数据来看确实没那么高O(∩_∩)O。6.0+的市场占有率仅为50% ̄□ ̄||。只因安卓用户的基数太大了吧。延伸至各种人群。虽然说占比才一半但时基数大总的用户数量还是蛮多的。这两天刚做完6.0权限的适配。那么请说一下自己测试的时候踩的坑吧(*╹▽╹*) 权限管理系统的变化 在Android6.0(M)之前,在用户安装应用的时候 在Android 6.0(Marshmallow)中,谷歌引入了一项重大改动,即权限管理系统从静态变为动态。在此之前,应用程序在安装时需要一次性获取所有所需权限,用户在安装时无从得知每个权限的具体用途。然而,这样的做法可能导致用户对应用程序所申请的敏感权限产生疑惑,甚至因此拒绝安装。Android 6.0开始,用户可以在安装后根据实际需求来管理应用的权限,提高了对隐私保护的控制力。 权限分为三类: 1. 普通权限:这些权限对手机的常规操作至关重要,如网络访问、蓝牙等,它们在安装时自动授予,用户无法拒绝或取消。 2. 危险权限:涉及用户隐私或可能影响其他应用运行的权限,例如读取联系人、访问位置等。这类权限在Android 6.0之后需要在运行时动态请求,并且被组织成若干权限组,以方便用户理解。 3. 特殊权限:包括更高级别的权限,如写入外部存储等,通常需要系统级别的授权。 针对Android 6.0的权限动态适配,开发者需要关注以下几点: 1. `checkSelfPermission(String permission)`:检查应用是否已经拥有特定权限。 2. `requestPermissions(String[] permissions, int requestCode)`:向用户请求一个或多个权限,通常在需要使用相关功能时调用。 3. `onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)`:权限请求的结果回调,根据返回的grantResults数组判断用户是否授予了请求的权限。 如果应用的`targetSdkVersion`小于23,那么在Android 6.0及以上系统上会继续沿用旧的权限管理机制,这意味着所有权限在安装时被授予。然而,将`targetSdkVersion`设置为23或更高,系统才会启用新的权限管理机制,要求运行时动态请求危险权限。 为了确保兼容性,开发者应使用`ContextCompat.checkSelfPermission()`和`ActivityCompat.requestPermissions()`来进行权限检查和请求,同时处理`onRequestPermissionsResult()`回调,以优雅地处理权限被拒绝的情况。此外,良好的用户界面提示和解释为何需要这些权限也非常重要,以便增加用户接受权限请求的可能性。 Android 6.0及更高版本的权限动态适配是一项关键任务,它要求开发者不仅要了解权限管理的新机制,还要能够设计出合适的用户体验来引导用户理解并接受权限请求。随着更多设备升级到Android 6.0以上版本,开发者必须适应这一变化,以确保应用能在各种设备上正常运行并尊重用户的隐私。
剩余6页未读,继续阅读
- 粉丝: 7
- 资源: 993
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0