デバイスから通話ログを取得し、その日付などをフォーマットし、すべての通話をリストに表示し、期間を分単位で計算するためのコードを表示する 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();
}
デバイスにあるすべての通話ログが表示されます。特定の期間の通話ログを取得するにはどうすればよいですか。前もって感謝します!