阅读背景:

Android获取本地通话记录

来源:互联网 
public class ContactManager {public static Context context;public static final int CALL_TYPE_INCOMING = 1;public static final int CALL_TYPE_OUTGOING = 2;public static final int CALL_TYPE_MISSED = 3;public static final int CALL_TYPE_OFF = 4;public synchronized static ContactManager getInstanse(Context ctx) {if (context == null) {context = ctx;}return new ContactManager();}public List loadLocalCalllog() {List list = new ArrayList();Cursor cursor = context.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null);if (cursor.moveToFirst()) {do {LocalCallLog callLog = new LocalCallLog();// 号码String number = cursor.getString(cursor.getColumnIndex(Calls.NUMBER));callLog.setNumber(number);// 呼叫类型String type;switch (Integer.parseInt(cursor.getString(cursor.getColumnIndex(Calls.TYPE)))) {case Calls.INCOMING_TYPE:callLog.setType(CALL_TYPE_INCOMING);break;case Calls.OUTGOING_TYPE:callLog.setType(CALL_TYPE_OUTGOING);break;case Calls.MISSED_TYPE:callLog.setType(CALL_TYPE_MISSED);break;default:callLog.setType(CALL_TYPE_OFF);break;}if (!TextUtils.isEmpty(cursor.getString(cursor.getColumnIndexOrThrow(Calls.DATE)))) {SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date(Long.parseLong(cursor.getString(cursor.getColumnIndexOrThrow(Calls.DATE))));// 呼叫时间String time = sfd.format(date);callLog.setCallTime(time);}// 联系人if (!TextUtils.isEmpty(cursor.getString(cursor.getColumnIndexOrThrow(Calls.CACHED_NAME)))) {String name = cursor.getString(cursor.getColumnIndexOrThrow(Calls.CACHED_NAME));callLog.setName(name);}// 通话时间,单位:sif (TextUtils.isEmpty(cursor.getString(cursor.getColumnIndexOrThrow(Calls.DURATION)))) {String duration = cursor.getString(cursor.getColumnIndexOrThrow(Calls.DURATION));callLog.setDuration(duration);}list.add(callLog);}while (cursor.moveToNext());}cursor.close();return list;}} public class ContactManager {public static Cont



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: