目前上架安卓应用市场大概率会被机审驳回,提示下面的问题,看了下应该是Uniapp的原生层在没配置安卓原生隐私政策模板时,会直接获取OAID。因为我们的隐私政策弹窗需要一些定制化控件,模板无法满足,还有其他办法可以避免这个问题吗?
场景5:APP向用户明示SDK的收集使用规则,未经用户同意,SDK存在收集IMEI、设备MAC地址和软件安装列表、通讯录和短信等信息的行为。
APP以个人信息处理规则隐私政策弹窗等形式向用户明示个人信息处理的目的、方式和范围,未经用户同意,(SDK: OPPO匿名设备标识符(OAID))存在收集(读取OAID)的行为。
2026-04-21 14:36:40.259 -> [测试动作] 启动史宾格隐私合规检测
2026-04-21 14:36:45.188 -> (SDK: OPPO匿名设备标识符(OAID)读取OAID
2026-04-21 14:37:39.010 -> 弹出隐私政策
com.heytap.openid.IOpenID
at android.os.Parcel.writeInterfaceToken()
at com.heytap.openid.a$a$a.a(Unknown Source:10)
at com.heytap.openid.sdk.c.b(Unknown Source:112)
at com.heytap.openid.sdk.c.a(Unknown Source:88)
at com.heytap.openid.sdk.OpenIDSDK.c(Unknown Source:12)
at com.bun.miitmdid.c.i.a.getVAID(Unknown Source:4)
at java.lang.reflect.Method.invoke(Native Method)
at io.dcloud.common.adapter.util.PlatformUtil.invokeMethod(r8-map-id-4693bad0aaa94051d701483b5008bd96bc8e944ba1f0761f87775fd00bab3ef9:37)
at io.dcloud.p.e3$c.invoke(r8-map-id-4693bad0aaa94051d701483b5008bd96bc8e944ba1f0761f87775fd00bab3ef9:18)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy5.OnSupport(Unknown Source)
at com.bun.miitmdid.core.MdidSdk.OnSupport(Unknown Source:4)
at com.bun.miitmdid.c.i.a$a.run(Unknown Source:32)
at java.lang.Thread.run(Thread.java:919)
1 个回复
Ask小助手 - Ask社区AI助手
针对你提到的“不使用安卓原生隐私政策模板,但需要避免在同意隐私政策前获取OAID”这个问题,结合你提供的检测日志和堆栈信息,核心矛盾在于:uni-app 框架层在应用启动早期就会初始化 OAID 相关的 SDK,而自定义的隐私弹窗(custom模式)无法在时间上阻塞这个初始化过程。
根据知识库中的明确说明和多个类似案例,目前有以下解决方案和现实情况需要你了解:
1. 核心原因
从你的堆栈信息
com.bun.miitmdid和io.dcloud相关调用可以看出,获取 OAID 的行为发生在 uni-app 的框架初始化阶段,这早于你用 H5 页面写的任何自定义隐私弹窗的显示时机。知识库中也有明确指出:目前设置custom模式策略,并不能完全避免在弹出隐私提示框之前,读取设备信息的情况,主要原因是自定义模式隐私提示框并不能阻塞应用的生命周期。2. 唯一可行的官方方案:使用 template 模式
目前,要彻底解决“同意隐私政策前获取OAID”的问题,唯一被市场审核认可且技术上行之有效的方法,就是使用 uni-app 提供的原生隐私政策模板(
template模式)。manifest.json文件中,切换到“App启动界面配置”,在“Android启动界面样式”中勾选“使用原生隐私政策提示框”。或者直接在源码视图中配置privacy节点为template。3. 关于你的定制化需求
你提到隐私政策弹窗需要一些定制化控件,而原生模板无法满足。这是一个确实存在的限制。目前的知识库和社区讨论中,没有提供在
custom模式下能完全阻止框架提前获取 OAID 的方法。因此,你需要在“审核通过”和“弹窗样式个性化”之间做一个权衡。一个折中的思路是:先使用
template模式通过应用市场的机审,确保应用能够顺利上架。对于模板弹窗的样式,它支持配置标题、内容(富文本,可包含链接)、按钮文字,你可以检查这些配置项是否能满足你的基本需求。4. 不推荐的方案与补充建议
manifest.json的app-plus->distribute->android节点下添加"enableOAID": false来禁用框架的 OAID 获取。但这会导致plus.device.getOAID接口返回空字符串,如果你的业务或依赖的其他SDK需要OAID,则此方案不可行。总结:在当前的 uni-app 框架机制下,想要实现完全自定义的隐私弹窗,同时又要在用户同意前彻底阻止 OAID 的获取,是无法做到的。建议你优先配置 template 模式来解决上架审核问题。
如果你对原生模板的配置细节有疑问,可以参考官方文档:Android平台隐私与政策提示框。
要回复问题请先登录或注册
公告
更多>相关问题