2011-09-29 51 views
1

我想從我的自定義應用程序中以編程方式添加手機日誌。 使用以下代碼添加電話日誌,我在電話日誌列表中找到了一個新的電話日誌, ,但它僅添加列表中的電話號碼,而不是「呼叫類型」,「持續時間」和「日期」。如何在Android中以編程方式添加手機日誌?

我錯過了什麼?

ContentValues values = null; 
    for (int i = 0; i < length; i++) { 
     Info info = (Info) Variables.elementAt(i); 
     int index = info.getIndex(); 
     String value = info.getValue(); 
     values = new ContentValues(); 
     if (value != null) { 
      if (index == Constants.NUMBER_TYPE) { 
       values.put(CallLog.Calls.CACHED_NUMBER_TYPE, value); 
      } else if (index == Constants.CALL_TYPE) { 
       values.put(CallLog.Calls.TYPE, value); 
      } else if (index == Constants.DATE) { 
       values.put(CallLog.Calls.DATE, value); 
      } else if (index == Constants.DURATION) { 
       values.put(CallLog.Calls.DURATION, value); 
      } 
     } 
    } 
    values.put(CallLog.Calls.NUMBER, phoneNumber); 
    activity.getContentResolver().insert(CallLog.Calls.CONTENT_URI, values); 
+0

您將相同的對象'value'放入地圖中多次。爲什麼? – bdares

+0

抱歉,不正確的代碼。正確的代碼現在已更新 – Smith

+0

我在等待回覆。 – Smith

回答

1

我在我的LG P350上試過這個。它當然可以與android.permission.WRITE_CONTACTS權限一起使用。

ContentValues values = new ContentValues(); 
values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0); 
values.put(CallLog.Calls.TYPE, CallLog.Calls.INCOMING_TYPE); 
values.put(CallLog.Calls.DATE, System.currentTimeMillis()); 
values.put(CallLog.Calls.DURATION, 50); 
values.put(CallLog.Calls.NUMBER, "1234567890"); 
getContentResolver().insert(CallLog.Calls.CONTENT_URI, values); 
相關問題