Android:如何从应用程序数据库向 android phone 应用程序提供有关数字的数据 - 最近

Android: how to provide data about numbers from application database to android phone app - recents

如何让 android 默认 phone 应用程序从我的应用程序数据库中获取分配的名称到号码并显示它?

我想要实现的一个例子:
号码 XXX-XXX-XXX 昨天给我打了电话,我的通讯录中没有它的名字,但我的应用程序数据库中有它的名字,所以在 phone 应用程序中 - 最近将显示我的应用程序数据库中的联系人姓名而不是 XXX-XXX-XXX。

可以通过将值写入 CACHED_NAME field in the CallLog.Calls table.

但是这有两个问题:

  1. Google Play 应用程序中的通话记录访问仅允许用于非常特定的用例,请参阅:https://support.google.com/googleplay/android-developer/answer/10208820?hl=en
  2. 大多数(如果不是全部的话)Phone 应用程序在启动时会刷新 CACHED_NAME 字段,因此它会在联系人 table 中查询 phone 号码,将找不到与该号码的任何联系人,然后将清除名称。

唯一可行的解​​决方案是在您的应用中为每个 phone-number 创建一个新的 RawContact,具有简单的 Phone 行和 StructuredName 行。

这会将这些号码添加到用户的联系人 table,并且还会在通话记录应用程序中显示姓名。