#android #android-contacts #android-syncadapter #calllog #android-account
#Android #android-контакты #android-syncadapter #журнал вызовов #android-учетная запись
Вопрос:
Я внедрил приложение «Контакты», и я хотел бы, чтобы имена контактов моего приложения отображались в истории журнала вызовов устройства (приложение для телефона) на случай, если я получу / позвоню на эти номера. Как я мог этого добиться?
Комментарии:
1. итак, по сути, вы хотите создать контакт, который будет отображаться в вашем приложении для звонков по умолчанию? Вы проверили контакты-провайдера ?
Ответ №1:
CallLog.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);
Ответ №2:
Спасибо @PedroHawk. Я нашел ответ по ссылке, которую вы предоставили. Более конкретно, я создам Account
свое приложение в учетных записях устройства, а затем использую a SyncAdapter
для синхронизации контактных данных из моего веб-сервиса с ContactsProvider
устройством.