Android 编辑呼叫历史记录名称

Android 编辑呼叫历史记录名称,android,android-contacts,android-syncadapter,calllog,android-account,Android,Android Contacts,Android Syncadapter,Calllog,Android Account,我已经实现了一个联系人应用程序,我希望我的应用程序的联系人姓名显示在设备的通话记录历史记录中(手机应用程序),以防我收到/拨打这些号码。如何实现这一点?该表包含用于缓存名称的字段,因为这些字段是缓存的名称,不希望它们始终为真,并且会不时刷新 通常,在大多数电话/通话记录应用程序中,当您打开通话记录时,它会显示通话列表以及存储在calls表中的缓存姓名,然后启动后台服务,刷新缓存姓名,向最近保存为联系人的号码添加姓名,或更新最近更改的姓名 因此,如果你的应用程序将通话记录中的某个号码存储为联系人,

我已经实现了一个联系人应用程序,我希望我的应用程序的联系人姓名显示在设备的通话记录历史记录中(手机应用程序),以防我收到/拨打这些号码。如何实现这一点?

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

通常,在大多数电话/通话记录应用程序中,当您打开通话记录时,它会显示通话列表以及存储在
calls
表中的缓存姓名,然后启动后台服务,刷新缓存姓名,向最近保存为联系人的号码添加姓名,或更新最近更改的姓名

因此,如果你的应用程序将通话记录中的某个号码存储为联系人,那么如果你随后启动通话记录应用程序,你应该会在一两秒钟内看到更新后的姓名

如果希望以编程方式将该名称存储在代码中,则可以轻松地执行以下操作:

String someNumber = "+12125551234";
String aName = "Jane Addams";
int numberType = Phone.TYPE_MOBILE; // see https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone#column-aliases

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

// 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);

谢谢你,佩德罗霍克。我在你提供的答案中找到了答案。更具体地说,我将在设备帐户中创建我的应用程序的
帐户
,然后使用
同步适配器
将我的web服务中的联系人数据同步到设备的
联系人提供商

那么,基本上你想创建一个联系人并显示在默认的呼叫应用程序上吗?你查过了吗?