我試圖進行VoIP應用程序,我想知道是否有可能做的通話記錄內容提供商如下 -如何向通話記錄(通話記錄)數據庫添加新的字段和記錄?
我要爲VoIP呼叫一起添加新的呼叫記錄與常規通話的通話記錄。如何將新記錄添加到現有的通話記錄內容提供商?
我想將自定義字段添加到呼叫日誌中,如會話ID和SIP地址(名稱@域)字段。我如何定製通話記錄數據庫?
如果有人能給我一個例子,那將會很棒。
我試圖進行VoIP應用程序,我想知道是否有可能做的通話記錄內容提供商如下 -如何向通話記錄(通話記錄)數據庫添加新的字段和記錄?
我要爲VoIP呼叫一起添加新的呼叫記錄與常規通話的通話記錄。如何將新記錄添加到現有的通話記錄內容提供商?
我想將自定義字段添加到呼叫日誌中,如會話ID和SIP地址(名稱@域)字段。我如何定製通話記錄數據庫?
如果有人能給我一個例子,那將會很棒。
從標準SDK應用程序中,您不能直接擴展或修改CallLog
數據庫或內容提供者。對於基於SDK的VOIP應用程序,您應該維護自己的通話記錄。
如果您正在爲自己的設備編寫自己的固件,我確信您可以修改通話記錄數據庫。
關於第一個問題,您可以使用此代碼來新記錄添加到現有的呼叫日誌,內容提供商:
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 for Android採取代號)
記住要添加的權限清單
<uses-permission
android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission
android:name="android.permission.WRITE_CONTACTS"></uses-permission>
關於通話記錄數據庫的定製,我認爲是不可能的。
如果你說的是真的,你對下面的羅伯託答案有何迴應?有什麼理由不應該使用或不應該使用? – 2011-10-04 14:43:18
@Eric:該答案用於將呼叫添加到日誌。我正在處理子彈#2;羅伯託解決了子彈#1。我很抱歉有任何混淆。 – CommonsWare 2011-10-04 14:48:07