【发布时间】:2012-11-01 05:00:22
【问题描述】:
我有一个广播监听器,它查找任何拨出电话,然后在拨出电话完成后启动服务。事情在服务中,我需要尝试获取最后一次通话时间。我尝试使用查询查询 CallLog.Calls.CONTENT_URI,
Cursor s = r.query(android.provider.CallLog.Calls.CONTENT_URI, null, null, null,CallLog.Calls.DATE + " DESC");
我正在寻找的只是最后一次通话的持续时间。我尝试了s.moveToFirst(); 和s.moveToLast();。但不知何故,我无法获得与最后一次拨出电话的持续时间相对应的正确值。我尝试获取持续时间,
int duration=s.getColumnIndex(android.provider.CallLog.Calls.DURATION);
String Duration=s.getString(duration);
我错过了什么吗?我怎样才能单独获得最后通话时间?因为服务是在拨出电话后才启动的,所以这里不必检查呼叫类型。
【问题讨论】:
-
简而言之,我在这里寻找的是,查询数据库时的排序顺序应该是什么,以及是否应该将光标移到第一个或最后一个以获得最后一个调用持续时间。