android - 以符合 Google 隐私政策的方式在 android 应用程序中显示最后一次通话
问题描述
我有一个应用程序,可以显示设备内用户的联系人并允许他拨打电话。我想向我的用户显示他最近拨打的电话。我一直在使用READ_CALL_LOG
权限(并且正在阅读通话记录),直到谷歌限制了对它的访问,然后我切换到ContactsProvider
检索联系人并对它们进行排序,LAST_TIME_CONTACTED
但现在谷歌表示该列已被弃用,实际上它对于新版本的 Android OS 将具有 0 值(见https://developer.android.com/guide/topics/providers/contacts-provider#ObsoleteData)
我的应用程序不是默认拨号程序(仅允许默认拨号程序应用程序访问通话记录),所以我想知道如何以符合 Google 政策的方式实现我想要的。
我坚持将最后选择的联系人存储在我自己的数据库中(我知道它不会是完整的通话记录,因为我只能访问从我的应用程序拨打的电话,但这对我来说很好),但不知道是否它符合 G 政策。我给谷歌写了一封电子邮件,但是回复的人说他无法帮助我解决我的问题,我必须创建我的应用程序的新版本并要求他们审查。
有谁知道我在自己的数据库中保存联系人的想法是否符合 G 政策(请提供来自官方网站的链接)。从我的链接(我在上面提供的)我只能看到谷歌说
如果您的应用正在访问或更新这些字段或 API,请使用替代方法。例如,您可以通过使用私有内容提供商或存储在您的应用程序或后端系统中的其他数据来满足某些用例。
然而,这并不能说服我我的想法是否合规
感谢帮助!
解决方案
我相信您可以存储和使用您的应用程序中发生的任何用户操作。该政策的目的(如此处所述:https ://support.google.com/googleplay/android-developer/answer/9047303?hl=en )是为了防止应用程序访问通话记录以使将其用于用户期望之外的目的,这就是为什么强调critical core functionality
应用程序的原因。
根据我的经验,不同的谷歌评论者对同一个应用程序的评论往往非常不同,虽然一个人可能会根据这个政策拒绝某个用例,但另一个人可能会批准它。
我建议以一种有助于审阅者理解这些数据不是从呼叫日志中获取的,而是从一些特定于应用程序的操作中获取的方式来表述您要创建的屏幕,例如,而不是标题“呼叫日志”,这可能会使一些人感到困惑有拒绝此更新风险的评论者,您应该将其命名为“最近的应用操作”或类似的名称。
推荐阅读
- c# - 一个类派生控件在模板中有一个画布,我想像画布一样工作
- android - 在 Android (API 19) 中启动时反应本机应用程序崩溃
- spring-boot - Spring boot 如何让 Thymeleaf 网页和 REST API 具有不同的身份验证方案
- android - 底部 VSTACK 图像到视频的 FFMpeg 错误
- python-3.x - 如何使用 python 自动化 ms 团队频道上的消息发送过程?
- css - iOS上滚动网格下方的IONIC 4固定插槽不起作用
- azure - Get-AzSubscription 不工作,但 Get-AzureRMSubscription 工作
- docker - 替换 spring/tomcat docker 映像中的占位符属性
- c++ - QListWidget 行相互重叠
- google-app-engine - 在 Google Cloud Platform 中解释成本数据