Android调用日志以编程方式刷新
我必须开发应用程序来获取通话持续时间。在调用结束时,应用程序读取当前调用的持续时间并将数据上载到服务器。某个时间调用日志会返回上一个调用的持续时间,因为刷新日志需要几秒钟的时间。我使用下面提到的代码来读取通话记录。有没有办法以编程方式刷新调用日志Android调用日志以编程方式刷新,android,Android,我必须开发应用程序来获取通话持续时间。在调用结束时,应用程序读取当前调用的持续时间并将数据上载到服务器。某个时间调用日志会返回上一个调用的持续时间,因为刷新日志需要几秒钟的时间。我使用下面提到的代码来读取通话记录。有没有办法以编程方式刷新调用日志 private int UpdateTelNoLog(String strTelNo) { int duration=0; String strOrder = CallLog.Calls.DATE + " DESC";
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 ;
}
当我试图在通话结束后获取当前通话的持续时间时,我遇到了同样的问题。但有时调用日志会返回以前的调用持续时间,因为刷新日志只需几秒钟。所以我试着不用刷新,而是调用了两毫秒的延时,现在它可以工作了。希望它对你有用。谢谢
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);
但有时会失败。我认为这取决于设备的速度。