我必须开发应用程序才能获得通话时间。在呼叫结束时,应用程序读取当前呼叫的持续时间并将数据上传到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 ;
}
答案 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);