Uniapp 下安卓的权限申请
内容提要
安卓手机定制化系统问题多,测试发现在一些手机上无法访问图片。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系统版本更新导致权限管理变得复杂,适配工作量大,尤其是厂商定制的系统。