1.获得通话记录:
private void getCallHistory() { Call call = null; Cursor cursor = this.getActivity().getContentResolver() .query(CallLog.Calls.CONTENT_URI, null, null, null, null); if (cursor.getCount() <= 0) { return; } cursor.moveToFirst(); do { call = new Call(); /* Reading Name */ String nameTemp = cursor.getString(cursor .getColumnIndex(CallLog.Calls.CACHED_NAME)); if (nameTemp == null) { nameTemp = ""; } if ("".equals(nameTemp)) { call.name = ""; } else { call.name = nameTemp; } /* Reading Date */ call.date = cursor.getLong(cursor .getColumnIndex(CallLog.Calls.DATE)); /* Reading duration */ call.duration = cursor.getLong(cursor .getColumnIndex(CallLog.Calls.DURATION)); /* Reading Date */ call.type = cursor .getInt(cursor.getColumnIndex(CallLog.Calls.TYPE)); call.phoneNumber = cursor.getString(cursor .getColumnIndex(CallLog.Calls.NUMBER)); calls.add(call); } while (cursor.moveToNext()); }
2. 获得短信记录
private void getAllSms() { ContentResolver cr = this.getActivity().getContentResolver(); Uri uri = Uri.parse("content://sms/"); Message message = null; messages.clear(); Cursor c = cr.query(uri, null, null, null, null); int totalSms = c.getCount(); if (totalSms <= 0) { return; } if (c.moveToFirst()) { for (int i = 0; i < totalSms; i++) { message = new Message(); if (c.getString( c.getColumnIndexOrThrow(Telephony.Sms.Inbox.TYPE)) .contains("1")) { message.type = "inbox"; } else { message.type = "send"; } // message.phoneNumber = c.getString(c // .getColumnIndexOrThrow(Telephony.Sms.Inbox.ADDRESS)); message.phoneNumber = c.getString(c .getColumnIndexOrThrow("address")); message.name = getNameByPhoneNumber(cr, message.phoneNumber); messages.add(message); c.moveToNext(); } } c.close(); }