Android调用日志以编程方式刷新

时间:2013-11-04 20:20:28

标签: android

我必须开发应用程序才能获得通话时间。在呼叫结束时,应用程序读取当前呼叫的持续时间并将数据上传到server.some time call log返回上一个呼叫持续时间,因为刷新日志需要几秒钟。我正在使用下面提到的代码来读取通话记录。有没有办法以编程方式刷新通话记录?

private int UpdateTelNoLog(String strTelNo) 
{       
    int duration=0;
    String strOrder = CallLog.Calls.DATE + " DESC";
        String selection = android.provider.CallLog.Calls.NUMBER + "='" + strTelNo + "'";
        Cursor managedCursor =myContext.getContentResolver().
                    query(CallLog.Calls.CONTENT_URI, null, selection, null, strOrder);

        if(managedCursor.getCount()>0)
        {
            managedCursor.moveToFirst();                        
            int date = managedCursor.getColumnIndex( CallLog.Calls.DATE);
            duration = managedCursor.getColumnIndex( CallLog.Calls.DURATION);
        }
    return duration ;
}

1 个答案:

答案 0 :(得分:0)

当我试图在通话结束后获得当前通话的持续时间时,我遇到了同样的问题。但它有时会调用日志返回上一个呼叫持续时间,因为刷新日志需要几秒钟。所以我尝试而不是刷新我称之为两毫秒时间延迟现在它的工作原理。希望它应该适合你。感谢

private int UpdateTelNoLog(String strTelNo) 
{       
    int duration=0;
    String strOrder = CallLog.Calls.DATE + " DESC";
    String selection = android.provider.CallLog.Calls.NUMBER + "='" + strTelNo + "'";
    Cursor managedCursor =myContext.getContentResolver().
                query(CallLog.Calls.CONTENT_URI, null, selection, null, strOrder);

    if(managedCursor.getCount()>0)
    {
        managedCursor.moveToFirst();                        
        int date = managedCursor.getColumnIndex( CallLog.Calls.DATE);
        duration = managedCursor.getColumnIndex( CallLog.Calls.DURATION);
    }
    return duration ;
}


handler.postDelayed(new Runnable() { 
      public void run() {  
         UpdateTelNoLog("959........");
      } 
}, 2000);