2011-09-30 97 views
0

好傢伙,當我讀了CallLog數的值是0,當我讀如緩存的名稱及其2 這裏是我的代碼,我把允許我面臨的一個問題Android的通話記錄閱讀

  String[] fields = { 
    android.provider.CallLog.Calls.NUMBER, 
    android.provider.CallLog.Calls.TYPE, 
    android.provider.CallLog.Calls.CACHED_NAME, 
    android.provider.CallLog.Calls.CACHED_NUMBER_TYPE 
    }; 
String order = android.provider.CallLog.Calls.DATE + " DESC"; 

Cursor c = getContentResolver().query(
    android.provider.CallLog.Calls.CONTENT_URI, 
    fields, 
    null, 
    null, 
    order 
    ); 

if(c.moveToFirst()){ 


    do{ 

//the problem was here    //System.out.println(c.getColumnIndex(android.provider.CallLog.Calls.NUMBER)+" - - "); 

//the solution is :$ 
System.out.println(c.getString(c.getColumnIndex(android.provider.CallLog.Calls.NUMBER))+" - - "); 

    } while (c.moveToNext()); 

} 

和我已經閱讀計算器 所有相關的問題,我想通了,所以我會繼續的問題,如果任何一個面對它,我是轉儲:S

回答

1

依賴於手機,也並非所有/任何列需要填寫。直至承運人/製造商/其他人想寫入表格。但是是的問題修復會做到這一點

+0

感謝您的信息,我感覺困了,所以我應該喝一些咖啡,以避免這個可怕的錯誤:$ – Sedz

+1

此外,有一件事我從使用這張表可能是有用的數字列中的負數(-1或-2)通常意味着它們來自私人號碼 –

+0

我正在嘗試計算特定提供商的通話時間,例如在兩個日期間以001開頭的數字 適用於不同操作系統版本的所有Android設備? – Sedz