как заставить недавние звонки показывать имя контакта при вставке - PullRequest
2 голосов
/ 17 января 2012

Я пытаюсь программно вставить новый вызов в свой HTC.

ContentValues values = new ContentValues();
values.put(android.provider.CallLog.Calls.NUMBER, someNumber);
values.put(android.provider.CallLog.Calls.CACHED_NAME, someName);
values.put(android.provider.CallLog.Calls.CACHED_NUMBER_TYPE, 0);
values.put(android.provider.CallLog.Calls.CACHED_NUMBER_LABEL, "");
values.put(android.provider.CallLog.Calls.DATE, someTime);
values.put(android.provider.CallLog.Calls.DURATION, someDuration);
values.put(android.provider.CallLog.Calls.NEW, 1);
contentResolver.insert(uri, values);

Ну, звонок отображается в списке, но я всегда вижу (неизвестно), а не CACHED_NAME. Тот же код хорошо работает на Samsung, но почему-то отстой на HTC. Это ошибка, похожая на поведение в HTC, или я что-то здесь упускаю?

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 18 января 2012

Alrighty.После глубокого расследования я выяснил причину.Устройства HTC по какой-то причине извлекают имена вызывающих абонентов из другого поля, называемого "cname", а не

android.provider.CallLog.Calls.CACHED_NAME="name"

. С помощью следующего будет работать:

String static final HTC_CACHED_NAME="cname"
if (isHTCDevice) 
    values.put(HTC_CACHED_NAME, someName);
...

Дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...