uni-app上架应用宝,APP/SDK代码问题:系统检测到在同意隐私政策前获取了MAC地址、Android_ID、已安装APP信息、存储权限、OAID

发布于 1周前 作者 bupafengyu 来自 uni-app

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 最新版本 -

8 回复

@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等,这些操作可能需要额外的权限声明和第三方库支持。同时,确保在应用中正确处理用户隐私和数据安全。

回到顶部