Android 7.0-10.0:安装时赋予运行权限,告别运行时授权弹窗

版权申诉
5星 · 超过95%的资源 16 下载量 138 浏览量 更新于2024-09-08 5 收藏 10KB TXT 举报
Android 7.0、8.0、9.0和10.0版本的系统设计了一种新的权限管理机制,即运行时权限。这与早期的系统不同,不再像以前那样在应用首次运行时就一次性请求并授予所有的权限,而是要求应用在实际需要时向用户明确请求特定权限。这种改变的主要目的是提升用户隐私保护和控制,让用户对自己的设备有更好的掌控。 在Android 7.0(Nougat)及以后的版本中,当应用试图访问某些敏感功能时,如果没有预先得到用户的明确许可,系统会自动拒绝,然后通过设置中的通知提示用户进行权限申请。这意味着,如果一个应用在安装时没有被授予所有所需的运行时权限,它在运行时将不会默认获得这些权限,除非用户手动在设置中给予。 针对这个问题,博主提供了一个解决方案,涉及到对`PermissionManagerService.java`文件的修改。这个修改的核心是将运行时权限的授予方式从动态请求改为安装时预授。博主建议更改代码中的逻辑,确保在安装APK时就已经赋予了所有安装时所需的权限,这样在运行时就不需要再弹出授权请求框,从而简化用户体验。 具体来说,博主指出有两个类型的权限:安装时间和运行时权限。安装时间权限是在应用安装到设备上并被分配给所有用户或未来添加的用户时授予的,而运行时权限则是在应用运行时根据需要由用户选择性地授予给特定用户。 在`PermissionManagerService.java`文件中,博主提到的`restorePermissionState()`方法是关键部分,该方法负责处理权限状态的恢复。原有的逻辑可能包含对这两个权限类型的区分和处理,博主建议修改这部分代码以确保在安装时一次性授予所有权限,从而避免在运行时额外的授权弹窗。 总结,Android 7.0及后续版本的权限管理机制注重用户隐私和控制,应用需要在需要时主动请求运行时权限。博主提供的解决方案是通过代码调整,确保权限在安装阶段就预先授予,从而减少用户在运行时面对的权限请求。这对于开发者来说是一个需要注意的改动,以便更好地遵循新系统的权限规范。