Как добавить новые поля и записи в базу данных журналов вызовов? - PullRequest
7 голосов
/ 29 апреля 2010

Я пытаюсь создать приложение VoIP и хотел узнать, возможно ли сделать следующее с поставщиком контента «Журналы вызовов» -

  1. Я хочу добавить новые записи журнала вызовов для вызова VoIP вместе с журналами вызовов для обычного вызова. Как я могу добавить новые записи в существующего провайдера контента Журналов вызовов?

  2. Я хочу добавить настраиваемые поля в журналы вызовов, такие как идентификатор сеанса и поле SIP-адреса (имя @ домен). Как настроить базу данных журналов вызовов?

Было бы здорово, если бы кто-нибудь мог привести мне пример.

Ответы [ 2 ]

10 голосов
/ 20 марта 2011

Что касается первого вопроса, вы можете использовать этот код для добавления новых записей в существующего поставщика содержимого журналов вызовов:

public static void insertPlaceholderCall(ContentResolver contentResolver, String number){
    ContentValues values = new ContentValues();
    values.put(CallLog.Calls.NUMBER, number);
    values.put(CallLog.Calls.DATE, System.currentTimeMillis());
    values.put(CallLog.Calls.DURATION, 0);
    values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE);
    values.put(CallLog.Calls.NEW, 1);
    values.put(CallLog.Calls.CACHED_NAME, "");
    values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
    values.put(CallLog.Calls.CACHED_NUMBER_LABEL, "");
    Log.d(TAG, "Inserting call log placeholder for " + number);
    contentResolver.insert(CallLog.Calls.CONTENT_URI, values);
}

(код взят из Google Voice Callback для Android )

Не забудьте добавить разрешения в манифест

<uses-permission
    android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission
    android:name="android.permission.WRITE_CONTACTS"></uses-permission>

Что касается настройки базы данных журналов вызовов, я не думаю, что это возможно.

6 голосов
/ 29 апреля 2010

Из стандартного приложения SDK вы не можете напрямую расширять или изменять базу данных CallLog или контент-провайдера. Для приложения VOIP на основе SDK вы должны вести собственный журнал вызовов.

Если вы пишете свою собственную прошивку для своего устройства, я уверен, что есть способы изменить базу данных журнала вызовов.

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