在uni-app中,使用 plus.device.getInfo
方法获取设备信息时,如果遇到在小米手机上弹窗提示获取通话状态和移动网络信息,这通常是因为你的应用请求了不必要的权限,而小米应用商店对权限使用有严格的审核要求。为了避免这种情况,你可以尝试以下几种方法:
1. 精确申请所需权限
确保你的应用只申请实际需要的权限。如果不需要获取通话状态和移动网络信息,就不要在 manifest.json
中申请这些权限。检查并修改 manifest.json
中的权限配置:
"mp-weixin": { // 示例,针对微信小程序,其他平台类似
"requiredPrivateInfos": [] // 确保这里不包含不必要的权限
},
"plus": {
"distribute": {
"android": {
"permissions": [
// 只保留必要的权限
"android.permission.INTERNET",
"android.permission.ACCESS_NETWORK_STATE",
// ... 其他必要的权限
// 移除不必要的权限,如:
// "android.permission.READ_PHONE_STATE",
// "android.permission.ACCESS_FINE_LOCATION"
]
}
}
}
2. 动态申请权限(如果必须)
如果确实需要某些敏感权限,可以考虑在运行时动态申请,而不是在 manifest.json
中静态声明。这可以减少用户在安装时看到的权限数量,提高过审概率。
// 示例:动态申请权限(需在用户触发某个功能时执行)
function requestPermissions() {
const permissions = ['android.permission.READ_PHONE_STATE']; // 示例权限
plus.android.requestPermissions(
permissions,
function(event) {
const granted = event.deniedAlways.length === 0;
if (granted) {
console.log('Permissions granted');
// 执行需要权限的操作
} else {
console.log('Permissions denied');
// 处理权限被拒绝的情况
}
},
function(e) {
console.error('Request permissions failed: ' + JSON.stringify(e));
}
);
}
3. 使用替代方案
如果 plus.device.getInfo
某些信息不是必须的,考虑使用其他方式获取所需信息,或者调整应用逻辑,避免使用可能触发敏感权限的方法。
4. 提交审核说明
在提交应用审核时,提供详细的权限使用说明,解释为什么需要这些权限,以及这些权限是如何被使用的。这有助于增加过审的概率。
通过上述方法,你可以有效减少应用因权限问题而被小米应用商店拒绝上架的风险。