You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否获取ConsentInformation.getPrivacyOptionsRequirementStatus的上一会话缓存结果?

背景

我正在使用Google新SDK处理GDPR广告合规规则,已查阅一些有用的资源以处理常规流程之外的SDK未覆盖场景及相关问题,包括Google AdMob安卓隐私文档、GDPR合规专项文档、UMP开源解决方案、Stack Overflow相关问答以及IAB的GDPR透明度与同意框架资料。

问题

常规流程运行正常:我通过requestConsentInfoUpdate查询当前状态,必要时通过loadAndShowConsentFormIfRequired向用户展示UI,也会在需要时通过getPrivacyOptionsRequirementStatus和UserMessagingPlatform.showPrivacyOptionsForm提供进入该UI的设置入口。

但查询当前状态有时耗时较长(我这边最长达3秒),因此希望使用已缓存的结果来替代实时查询。

已尝试方案

为减少查询耗时,我发现结果已被保存,因此不再使用ConsentInformation.canRequestAds,而是通过开源方案中展示的方法访问SharedPreferences;同时,为确保缓存数据未过期,我尝试调用开源方案中的缓存过期检测方法。这些均为临时解决方案,我已向Google AdMob官方论坛请求官方支持。

目前仅剩一个问题:如何在已有缓存时避免调用requestConsentInfoUpdate来获取getPrivacyOptionsRequirementStatus的结果。

该函数用于判断是否应在应用设置中为用户提供进入广告合规UI的入口。

其官方文档显示,该函数可直接使用,默认返回上一会话的结果(若存在):

返回值……在调用requestConsentInfoUpdate(...)前为UNKNOWN,在requestConsentInfoUpdate(...)成功完成并调用...OnConsentInfoUpdateSuccessListener前,默认返回上一会话的值。

但实际测试中,该函数并未达到文档描述的效果,我已在Google AdMob官方论坛上报该问题。

疑问

该值是否已被保存?能否获取其缓存的布尔值?若可以,具体方法是什么?

内容的提问来源于stack exchange,提问作者android developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:23:31