uniapp提交安卓应用市场提示未经用户允许获取硬件设备信息如何解决?

在uniapp开发的安卓应用提交市场时,被提示“未经用户允许获取硬件设备信息”,该如何解决?具体需要修改哪些配置或代码?是否需要在隐私政策中补充说明?求解决方法!

2 回复

在manifest.json中检查权限配置,确保只申请必要权限。在隐私政策中明确说明获取设备信息的目的,并在首次启动时弹窗获取用户授权。


在UniApp开发中,若提交安卓应用市场时提示“未经用户允许获取硬件设备信息”,通常是由于应用在用户未授权的情况下访问了设备敏感信息(如IMEI、MAC地址、位置等)。以下是解决方案:

1. 检查并声明权限

  • manifest.json 中检查是否声明了不必要的权限,移除与功能无关的权限:
    {
      "permissions": {
        "android": {
          "request": [
            "权限名称" // 仅保留必要权限,如网络访问
          ]
        }
      }
    }
    

2. 动态申请权限

  • 对于敏感权限(如位置、存储),使用UniApp的API动态申请:
    // 示例:申请存储权限
    uni.authorize({
      scope: 'scope.writePhotosAlbum',
      success: () => {
        console.log('授权成功');
      },
      fail: () => {
        uni.showModal({
          content: '需要存储权限以保存文件',
          showCancel: false
        });
      }
    });
    

3. 避免使用非法获取设备信息的API

  • 不要通过非正规渠道获取设备唯一标识(如IMEI)。推荐使用UniApp的 uni.getSystemInfo 获取非敏感信息:
    uni.getSystemInfo({
      success: (res) => {
        console.log(res.platform); // 设备平台
      }
    });
    

4. 隐私政策合规

  • 在应用内添加隐私政策链接,明确说明信息收集目的,并在用户同意后再调用相关功能。

5. 使用Google Play合规的标识符

  • 如需设备标识,使用AAID(Google Advertising ID)并遵循用户重置选项。

6. 测试与验证

  • 使用安卓真机测试权限弹窗是否正常触发,确保用户可控制授权。

通过以上步骤,通常可解决市场审核问题。重点在于最小化权限申请、动态授权及透明化隐私政策。

回到顶部