我如何让android默认手机应用程序将指定的名称从我的应用程序数据库中提取并显示?
我想要实现的一个例子是:
XXX-XXXX-XXX号码昨天打电话给我,我的通讯录中没有它的名字,但我的应用程序数据库中有它的名字——所以在手机应用程序中,最近的联系人将显示我应用程序数据库的联系人的名字,而不是XXX-XXX--XXX。
可以将值写入CallLog.Calls
表中的CACHED_NAME
字段。
然而,这有两个问题:
- 只有在非常特定的用例中才允许访问Google Play应用程序中的呼叫日志,请参阅:https://support.google.com/googleplay/android-developer/answer/10208820?hl=en
- 大多数(如果不是全部的话(手机应用程序在启动时都会刷新
CACHED_NAME
字段,因此它会在联系人表中查询该电话号码,找不到任何具有该号码的联系人,然后清除姓名
唯一可行的解决方案是在应用程序中为每个电话号码创建一个新的RawContact,使用一个简单的Phone
行和一个StructuredName
行。
这将把这些号码添加到用户的联系人表中,并在通话日志应用程序中显示姓名。