在android编程中是否有一种方法可以在CallLogs中获取Changed Contacts Names而不是Cached Names

问题描述 投票:1回答:1

我正在开发一个应用程序来获取CallLogs。从CallLogs我获得呼叫者的缓存名称。现在,如果我更改联系人列表中人员的姓名。它没有反映在CallLogs中。如何处理它

android android-contacts telephonymanager
1个回答
0
投票

CallLog.Calls表包含用于缓存名称的字段,因为这些是缓存的名称,它们不会始终为真,并且会不时刷新。

大多数电话/通话记录应用程序将显示调用列表及其存储在Calls表中的缓存名称,然后启动后台线程以刷新这些缓存的名称列 - 将名称添加到最近保存为联系人的数字或更新名称最近改变了。

因此,如果您更新了联系人的姓名,然后启动了呼叫日志应用程序,您应该会看到更新的名称出现在一两秒内。

如果要在代码中以编程方式更新缓存名称,则可以轻松地执行此操作:

String someNumber = "+12125551234"; // this is format-sensitive, so it must be exactly as it appears in the call-log
String aName = "Jane Addams";

final ContentValues values = new ContentValues(2);
values.put(Calls.CACHED_NAME, aName);

// on Lollipop+ device, you can also set Calls.CACHED_LOOKUP_URI and Calls.CACHED_FORMATTED_NUMBER

getContentResolver().update(Calls.CONTENT_URI, values, Calls.NUMBER + "='" + someNumber + "'", null);
© www.soinside.com 2019 - 2024. All rights reserved.