public class CalllogItem {
//类型(呼出,呼入,未接)
private int type = -1;
private String phonenumber = null;
private String contactname = null;
private String duration = null;
private String calltime = null;
public CalllogItem(int type, String phone, String name, String dur, String time) {
this.type = type;
this.phonenumber = phone;
this.contactname = name;
this.duration = dur;
this.calltime = time;
}
public static ArrayList<CalllogItem> getCallLog(Context context, String lasttime) {
ArrayList<CalllogItem> calllogItems = new ArrayList<CalllogItem>();
Cursor cursor;
long day = 0;
if (!isEmptyString(lasttime)) {
long t = Long.parseLong(lasttime);
long time = System.currentTimeMillis() - (t * 1000);
day = (long) Math.ceil(time / 24 / 60 / 60 / 1000.0f);// 天前
if (day >= 30) {
cursor = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,
null, (Integer.valueOf(lasttime)) * 1000L + "<date and date <=" + System.currentTimeMillis(), null, "date desc");
} else {
//cursor = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,
null, "date>" + System.currentTimeMillis(), null, "date desc");
}
} else {
cursor = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,
null, "date<=" + System.currentTimeMillis(), null, "date desc");
}
if (null != cursor) {
if (cursor.moveToFirst()) {
do {
//号码
String number = cursor.getString(cursor.getColumnIndex(Calls.NUMBER));
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(Long.parseLong(cursor.getString(cursor.getColumnIndexOrThrow(Calls.DATE))));
//呼叫时间
String timeString = sfd.format(date);
//联系人
String name = cursor.getString(cursor.getColumnIndexOrThrow(Calls.CACHED_NAME));
//通话时间,单位:s
String duration = cursor.getString(cursor.getColumnIndexOrThrow(Calls.DURATION));
int type = cursor.getInt(cursor.getColumnIndex(Calls.TYPE));
calllogItems.add(new CalllogItem(type, number, name, duration, timeString));
} while (cursor.moveToNext());
}
}
if (null != cursor)
cursor.close();
return calllogItems;
}