【问题标题】:Android call log reading安卓通话记录读取
【发布时间】:2011-10-01 06:50:02
【问题描述】:

大家好,我在读取 CallLog 时遇到问题,数字的值为 0,例如当我读取缓存名称时,它的值为 2 这是我的代码,我输入了权限

         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());

}

我已经阅读了关于 stackoverflow 的所有相关问题 我想通了,所以如果有人遇到这个问题,我会保留这个问题,我被转储了:S

【问题讨论】:

    标签: android calllog


    【解决方案1】:

    取决于电话,也不需要填写所有/任何列。取决于运营商/制造商/其他想要写入表格的人。但是是的,问题修复会做到这一点

    【讨论】:

    • 感谢您提供的信息,我感到困了,所以我应该喝点咖啡以避免这个可怕的错误:$
    • 另外,我在使用此表时注意到的一件可能有用的事情是,数字列中的负数(-1 或 -2)通常意味着它们来自私人号码跨度>
    • 我要做的是计算特定提供商的通话时间,例如两个日期之间以 001 开头的数字,这是否适用于具有不同操作系统版本的每个 android 设备?
    • 我所有的手机都有号码、时长和日期,所以你应该可以接受。但是,号码格式取决于您在拨号器中输入的内容(可能没有区号或 1)或拨号器为呼叫号码保存的内容(可能以 + 开头,也可能以 1 开头,取决于)所以您可能想来用某种方法来规范化数字
    • 有没有办法发现制造商可能提供的其他列?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多