我正在创建一个Android应用程序,它从设备获取呼叫日志,格式化其日期等,显示列表中的所有呼叫以及一段代码来计算持续时间到分钟。它工作正常,但我希望我的应用程序显示通话记录,从每月20日到下个月20日。所以我可以计算一个月内我说话的时间。这是我的代码
private String getCallDetails() {
StringBuffer sb = new StringBuffer();
Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null,
null, null, null);
int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
sb.append("Call Details :");
while (managedCursor.moveToNext()) {
String phNumber = managedCursor.getString(number);
String callType = managedCursor.getString(type);
String callDate = managedCursor.getString(date);
Date callDayTime = new Date(Long.valueOf(callDate));
String dateStr = new SimpleDateFormat("dd:MM:yyyy", Locale.ENGLISH).format(callDayTime);
String callDuration = managedCursor.getString(duration);
float caldu =Float.parseFloat(callDuration); //convert seconds into minutes eg. 4secs to 1 minute
float value = caldu/60;
String tempStr=""+value;
StringTokenizer tokens = new StringTokenizer(tempStr, ".");
String strToken1=tokens.nextToken();
String strToken2=tokens.nextToken();
int lVal=Integer.parseInt(strToken1);
int rVal=Integer.parseInt(strToken2);
String CallsDurationStr = null;
if(rVal>0)
{
lVal=lVal+1;
CallsDurationStr=""+lVal;
}
else if(rVal==0)
{
CallsDurationStr=""+lVal;
}
String dir = null;
int dircode = Integer.parseInt(callType);
if(dircode==CallLog.Calls.OUTGOING_TYPE)
{
dir="outgoing";
sb.append("\nPhone Number:--- " + phNumber + " \nCall Date:--- " + dateStr
+ " \nCall duration in min :--- " + CallsDurationStr);
sb.append("\n----------------------------------");
}
}
managedCursor.close();
return sb.toString();
}
显示我在设备中的所有通话记录。如何从特定时间段获取通话记录。提前致谢!
答案 0 :(得分:1)
您正在callDayTime
获取日期,现在检查此日期是否在您的特定日期A和B之间。如果它超出您的日期持续时间,请不要在您正在使用的字符串缓冲区中添加此条目。
sb.append("\nPhone Number:--- " + phNumber + " \nCall Date:--- " + dateStr
+ " \nCall duration in min :--- " + CallsDurationStr);
sb.append("\n----------------------------------");