Uniapp 下安卓的权限申请

💡 原文中文,约3000字,阅读约需7分钟。
📝

内容提要

安卓手机定制化系统问题多,测试发现在一些手机上无法访问图片。Android 11以上系统导致权限失效。推荐使用XXPermissions开源项目解决权限问题。华为手机需特别处理权限。

🔎

延伸解读

Android 权限演变与适配挑战

从 Android 10 到 14,权限管理不断细化:分区存储、单次授权、细化媒体权限等。Android 14 还引入 READ_MEDIA_VISUAL_USER_SELECTED,允许用户部分授权。这些变化叠加厂商定制,导致适配复杂,开发者需针对不同版本和品牌做兼容处理。

XXPermissions 的集成与注意事项

文章推荐使用 XXPermissions 开源项目处理权限申请。若项目已适配 Android 10 分区存储,需在 AndroidManifest.xml 中添加 meta-data 声明 ScopedStorage 为 true,否则应使用 MANAGE_EXTERNAL_STORAGE 权限。集成到原生插件中可能比 uniapp 的 uts 插件更可靠。

当前临时方案:仅针对华为/荣耀提醒

作者目前的解决方案是仅对华为和荣耀手机进行权限提醒,其他品牌暂不处理。代码中通过判断手机品牌,对华为/荣耀请求 READ_EXTERNAL_STORAGE 权限,其他品牌则不做处理。这是一种临时规避策略,可能无法覆盖所有定制系统的问题。

❓

Q&A

为什么一些安卓手机无法访问图片?

一些安卓手机无法访问图片可能与Android 11以上系统的权限失效有关。

如何解决安卓权限申请的问题?

推荐使用XXPermissions开源项目来解决安卓权限申请的问题。

华为手机在权限申请上有什么特别处理?

华为手机需要增加弹窗提示用户授权,以满足市场上架要求。

Android 14引入了哪些新的媒体库访问权限?

Android 14引入了READ_MEDIA_IMAGES和READ_MEDIA_VIDEO权限,用户可以选择特定照片和视频进行访问。

uniapp的uts插件在权限申请上有什么问题?

uniapp的uts插件在申请权限时效果不佳,建议使用XXPermissions来实现权限申请。

Android系统版本更新对权限管理有什么影响?

Android系统版本更新导致权限管理变得复杂,适配工作量大,尤其是厂商定制的系统。

🏷️

标签

➡️

继续阅读