uni-app 安卓App打开应用弹出隐私政策前提前读取传感器列表 uni-push 2(个推SDK)提前收集IMEI 设备MAC地址和软件安装列表等信息
uni-app 安卓App打开应用弹出隐私政策前提前读取传感器列表 uni-push 2(个推SDK)提前收集IMEI 设备MAC地址和软件安装列表等信息
| 项目创建方式 | 开发环境 | 版本号 |
|---|---|---|
| HBuilderX | Windows | 11 |
操作步骤:
- 打开App,弹出隐私弹窗,同意,进入系统
预期结果:
- 打开App,弹出隐私弹窗,同意之后,才能获取权限
实际结果:
- 打开App,开始获取隐私权限,然后才弹出隐私弹窗
bug描述:
- 项目使用了uni-push 2,个推的SDK会导致,在用户点击同意隐私政策之前,提前收集IMEI、设备MAC地址和软件安装列表等信息,以及提前向用户申请手机、通讯、短信等敏感权限。
- 以及,打开应用,弹出隐私政策前,(SDK: Dcloud开发平台) 读取传感器列表。
- 这些问题,在隐私合规检测中都会出现,导致安全评估不过,以及下架整改。

更多关于uni-app 安卓App打开应用弹出隐私政策前提前读取传感器列表 uni-push 2(个推SDK)提前收集IMEI 设备MAC地址和软件安装列表等信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用一键登陆(个验),上架小米遇到同样的问题,希望官方尽快处理
更多关于uni-app 安卓App打开应用弹出隐私政策前提前读取传感器列表 uni-push 2(个推SDK)提前收集IMEI 设备MAC地址和软件安装列表等信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html
隐私协议的hrefLoader改成system看看
文档上是这样写的,“可能有些检测机构认为webview会读取隐私信息,这时可以配置为system来解决此问题”,我去修改试试
刚提审了,还是失败了
回复 y***@qq.com: 应该还是个推sdk的问题
这个属性是修改点击隐私协议弹出的页面使用的webview
修改 隐私协议的hrefLoader改成system 无效
你好。请问你这个问题解决了吗?
没有解决,临时使用全包更新的方式处理,等过段时间再尝试重新打包上架
你好。请问你这个问题解决了吗?
同样的问题,系统方面的,开发者很无奈,咋办呀?
现在还有这样的问题
在开发安卓应用时,隐私政策合规性是一个非常重要的问题,尤其是在处理用户敏感信息(如传感器数据、IMEI、MAC地址等)时。根据Google Play的政策和中国的《个人信息保护法》(PIPL)等相关法律法规,应用在收集用户信息之前,必须明确告知用户并获得用户的同意。
问题分析
-
提前读取传感器列表:在用户同意隐私政策之前,应用不应该主动收集任何用户信息,包括传感器数据。这种行为可能会被视为违反隐私政策,尤其是在用户未明确同意的情况下。
-
uni-push 2(个推SDK)提前收集IMEI、MAC地址和软件安装列表:个推SDK可能会在应用启动时收集设备信息(如IMEI、MAC地址、软件安装列表等),但根据隐私政策的要求,这些操作应该在用户同意隐私政策之后进行。如果在用户未同意的情况下收集这些信息,可能会导致应用被下架或面临法律风险。
解决方案
为了避免隐私政策合规性问题,建议采取以下措施:
-
延迟信息收集:在用户同意隐私政策之前,应用不应主动收集任何敏感信息(如传感器数据、IMEI、MAC地址等)。可以在用户同意隐私政策后,再进行相关信息的收集和处理。
-
隐私政策弹窗:在应用启动时,立即弹出隐私政策弹窗,确保用户在同意隐私政策后再进行后续操作。弹窗应明确告知用户应用将收集哪些信息,以及如何使用这些信息。
-
个推SDK的合规使用:对于个推SDK,确保在用户同意隐私政策后再进行初始化,避免在未同意的情况下收集设备信息。可以通过以下方式实现:
- 在用户同意隐私政策后,再调用个推SDK的初始化方法。
- 在应用的
onCreate方法中,先弹出隐私政策弹窗,等待用户同意后再进行SDK的初始化。
-
权限申请:对于需要访问传感器、设备信息等敏感权限,确保在用户同意隐私政策后再申请相关权限。
示例代码
以下是一个简单的示例,展示如何在用户同意隐私政策后再初始化个推SDK:
// 在应用启动时弹出隐私政策弹窗
onLaunch() {
this.showPrivacyPolicy();
},
methods: {
showPrivacyPolicy() {
uni.showModal({
title: '隐私政策',
content: '请仔细阅读并同意我们的隐私政策。',
confirmText: '同意',
cancelText: '不同意',
success: (res) => {
if (res.confirm) {
// 用户同意隐私政策后,初始化个推SDK
this.initGeTuiSDK();
} else {
// 用户不同意隐私政策,退出应用或采取其他措施
uni.showToast({
title: '您需要同意隐私政策才能继续使用应用',
icon: 'none'
});
// 可以选择退出应用或跳转到其他页面
}
}
});
},
initGeTuiSDK() {
// 初始化个推SDK的代码
// 例如:GeTuiSdk.init({...});
}
}

