Android的通话记录阅读

问题描述:

好家伙,当我读了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

依赖于手机,也并非所有/任何列需要填写。直至承运人/制造商/其他人想写入表格。但是是的问题修复会做到这一点

+0

感谢您的信息,我感觉困了,所以我应该喝一些咖啡,以避免这个可怕的错误:$ – Sedz

+1

此外,有一件事我从使用这张表可能是有用的数字列中的负数(-1或-2)通常意味着它们来自私人号码 –

+0

我正在尝试计算特定提供商的通话时间,例如在两个日期间以001开头的数字 适用于不同操作系统版本的所有Android设备? – Sedz