uni-app 无法强制移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO权限 导致谷歌提示必须声明
uni-app 无法强制移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO权限 导致谷歌提示必须声明
操作步骤
在manifest.json里添加了强制移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO这两个权限
预期结果
云打包之后abb不包含这两个权限
实际结果
google仍然提示包含这两个权限
bug描述
"excludePermissions" : [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
已经在manifest.json里添加了强制移除这两个权限。云打包后还是如此!发现也有其他人同样遇到这个情况,但没有解决办法,官方难道不管一下吗?
开发环境信息
项目创建方式 | PC开发环境操作系统 | PC开发环境操作系统版本号 | HBuilderX类型 | HBuilderX版本号 | 手机系统 | 手机系统版本号 | 手机厂商 | 手机机型 | 页面类型 | vue版本 | 打包方式 |
---|---|---|---|---|---|---|---|---|---|---|---|
HBuilderX | Windows | win10 | 正式 | 4.45 | Android | Android 13 | 小米 | xiaomi 13 | vue | vue2 | 云端 |
在处理 uni-app
项目中遇到的权限问题时,尤其是当应用不再需要某些权限但谷歌应用商店提示必须声明时,我们可以通过配置 manifest.json
文件和相应的代码逻辑来尝试解决或优化权限请求。虽然直接“强制移除”权限在运行时是不可行的(因为操作系统需要确保应用不会滥用权限),但我们可以控制权限的声明和请求过程。
1. 检查并调整 manifest.json
首先,确保 manifest.json
中没有不必要的权限声明。对于 READ_MEDIA_IMAGES
和 READ_MEDIA_VIDEO
权限,如果应用确实不需要它们,应该从配置文件中移除。
// manifest.json 示例片段
{
"mp-weixin": { // 微信小程序等平台配置
// ...
},
"app-plus": { // App平台配置
"permission": {
// 确保这里没有不必要的权限声明
// "ReadMediaImages": {},
// "ReadMediaVideo": {},
// 其他必要权限
}
}
}
2. 动态请求权限(仅在需要时)
如果应用在某些特定功能中才需要访问媒体文件,可以考虑在功能触发时才请求权限,而不是在应用启动时。这可以通过条件判断和调用平台API实现。
// 示例:在需要访问图片或视频时请求权限
function requestMediaPermissions() {
#ifdef APP-PLUS
const permissions = ['ReadMediaImages', 'ReadMediaVideo'];
plus.android.requestPermissions(permissions, function(event) {
for (let i = 0; i < event.deniedAlways.length; i++) {
console.error('Permission permanently denied:', event.deniedAlways[i]);
}
for (let i = 0; i < event.denied.length; i++) {
console.warn('Permission denied:', event.denied[i]);
}
for (let i = 0; i < event.granted.length; i++) {
console.log('Permission granted:', event.granted[i]);
}
});
#endif
}
// 在特定功能触发时调用
someFunctionThatNeedsMediaAccess() {
if (/* 条件判断,比如用户点击了某个按钮 */) {
requestMediaPermissions();
}
}
3. 更新应用描述和隐私政策
确保在应用描述和隐私政策中清晰说明应用为何需要这些权限,以及这些权限如何被使用。这有助于增加用户信任,也可能影响谷歌应用商店的审核结果。
通过上述步骤,虽然不能直接“强制移除”权限,但可以优化权限的管理和声明,确保应用符合谷歌应用商店的要求,同时保护用户隐私。在实际操作中,务必根据应用的具体需求和目标平台的要求进行调整。