能否获取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

