uni-app上架应用宝,APP/SDK代码问题:系统检测到在同意隐私政策前获取了MAC地址、Android_ID、已安装APP信息、存储权限、OAID
uni-app上架应用宝,APP/SDK代码问题:系统检测到在同意隐私政策前获取了MAC地址、Android_ID、已安装APP信息、存储权限、OAID
违规收集个人信息 存在2 处风险
场景2
APP以隐私政策弹窗的形式向用户明示收集使用规则,未经用户同意,存在收集IMEI、设备MAC地址和软件安装列表、通讯录和短信的行为。
同意隐私政策前 sdk 移动智能终端补充设备标识体系统一调用SDK 获取OAID 1
已经好几次了,每次都是这个问题
HbuilderX也是最新版本
堆栈信息
com.bun.miitmdid.core.MdidSdkHelper.InitSdk(android.content.Context,boolean,com.bun.supplier.IIdentifierListener)
java.lang.reflect.Method.invoke(Native Method)
io.dcloud.h.a.d.b.g.a(Unknown Source:27)
io.dcloud.h.a.d.b.g.b(Unknown Source:1)
io.dcloud.h.a.d.b.g.c(Unknown Source:2)
io.dcloud.h.a.d.b.i.b(Unknown Source:35)
io.dcloud.h.c.c.b.b.e.b(Unknown Source:7)
io.dcloud.h.c.c.b.b.e.a(Unknown Source:36)
io.dcloud.h.c.c.b.b.d.b(Unknown Source:1)
io.dcloud.feature.gg.dcloud.ADHandler.pull(Unknown Source:35)
io.dcloud.feature.gg.dcloud.AolFeatureImpl.doForFeature(Unknown Source:137)
io.dcloud.feature.gg.AolFeatureImplMgr.doForFeature(Unknown Source:5)
io.dcloud.a.a(Unknown Source:16)
io.dcloud.b$a.run(Unknown Source:5)
android.os.Handler.handleCallback(Handler.java:873)
java.lang.reflect.Method.invoke(Native Method)
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
HbuilderX | 最新版本 | - |
@DCloud_HB_WJ 官方的童鞋,帮忙看看。 很急。!@DCloud_UNI_OttoJi @DCloud_HB_GY @DCloud_商务_Nisa @DCloud_HB_Gml
检查应用是否使用了我们提供的隐私模板,检查是否开启了游客模式。
没有 用的自己的隐私协议模板 我们的产品基于DCloud uni-app(5+ App/Wap2App)开发,应用运行期间需要收集您的设备唯一识别码(IMEI/android ID/DEVICE_ID/IDFA、SIM 卡 IMSI 信息、OAID)以提供统计分析服务,并通过应用启动数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。详情内容请访问《DCloud用户服务条款》。(DCloud用户服务条款超链至:https://ask.dcloud.net.cn/protocol.html) 这个也加上了
回复 1***@qq.com: 需要切换成我们提供的模板。参考文档:https://uniapp.dcloud.net.cn/tutorial/app-privacy-android.html
回复 DCloud_Android_zl: 我现在配置了 那个隐私框还是没有弹出来
回复 1***@qq.com: 按照文档对比一下是不是有遗漏。如果标准基座不行可以提交云打包试一下。
最后怎么解决的房主
在处理uni-app上架应用宝时遇到的隐私政策同意前的权限和数据获取问题,我们需要确保应用在用户同意隐私政策之前不会获取任何敏感信息。以下是一个基本的处理思路以及相关的代码示例,用于在用户同意隐私政策后再进行这些敏感操作。
1. 隐私政策同意状态管理
首先,我们需要在应用中增加一个变量来管理用户是否已经同意隐私政策。
// 在应用的Vue实例的data中添加一个状态变量
data() {
return {
hasAgreedPrivacyPolicy: false, // 用户是否已同意隐私政策
};
},
2. 用户同意隐私政策后的处理
在用户点击同意隐私政策的按钮后,我们更新这个状态变量,并进行后续的敏感操作。
methods: {
agreePrivacyPolicy() {
this.hasAgreedPrivacyPolicy = true;
this.collectSensitiveData();
},
collectSensitiveData() {
if (this.hasAgreedPrivacyPolicy) {
// 获取MAC地址、Android_ID、已安装APP信息、OAID等操作
this.getMacAddress();
this.getAndroidId();
this.getInstalledApps();
this.requestStoragePermission();
this.getOaid();
} else {
console.error("用户未同意隐私政策,不能获取敏感数据");
}
},
// 示例方法,实际实现需根据具体API
getMacAddress() {
// 获取MAC地址的逻辑
},
getAndroidId() {
// 获取Android_ID的逻辑
},
getInstalledApps() {
// 获取已安装APP信息的逻辑
},
requestStoragePermission() {
// 请求存储权限的逻辑,使用uni-app的API
uni.authorize({
scope: 'scope.userLocation',
success() {
console.log('存储权限授权成功');
},
fail() {
console.log('存储权限授权失败');
}
});
},
getOaid() {
// 获取OAID的逻辑
}
}
3. 阻止未经授权的访问
在应用的入口或者敏感操作前,检查用户是否已经同意隐私政策。
onLoad() {
if (!this.hasAgreedPrivacyPolicy) {
// 跳转到隐私政策页面或者显示提示信息
uni.navigateTo({
url: '/pages/privacyPolicy/privacyPolicy'
});
} else {
// 继续应用的其他逻辑
this.collectSensitiveData();
}
}
注意
上述代码是一个基本的示例,用于展示如何处理用户隐私政策同意前的权限和数据获取问题。实际开发中,需要根据具体的uni-app API和第三方SDK文档来实现具体的功能,比如获取MAC地址、Android_ID、OAID等,这些操作可能需要额外的权限声明和第三方库支持。同时,确保在应用中正确处理用户隐私和数据安全。