您的位置:首页 > 移动开发 > Android开发

android 获取短信 通讯录 电话记录

2015-07-27 17:18 567 查看
首先添加权限

<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_SMS"/>


通讯录

final Uri AddressList = Phone.CONTENT_URI;

ContentResolver cr = mContext.getContentResolver();
String[] PHONES_PROJECTION = new String[] {Phone.RAW_CONTACT_ID,Phone.DISPLAY_NAME, Phone.NUMBER,Phone.TYPE};
Cursor cur = cr.query(AddressList, PHONES_PROJECTION, null, null, null);

ArrayList<String> list = new ArrayList<String>();
list.clear();
if(cur.moveToFirst()){
do{
int RawID = cur.getColumnIndex(Phone.RAW_CONTACT_ID);
int NameID = cur.getColumnIndex(Phone.DISPLAY_NAME);
int NumberID = cur.getColumnIndex(Phone.NUMBER);
int TypeID = cur.getColumnIndex(Phone.TYPE);

//name text,number text
String insert = "INSERT OR IGNORE INTO th_ALH(raw_id,name,number,type) VALUES('rid','namestr','numberstr',sType)";
insert = insert.replace("namestr", Base64.encodeToString(cur.getString(NameID).getBytes(), Base64.DEFAULT));
insert = insert.replace("numberstr",cur.getString(NumberID));
insert = insert.replace("rid",cur.getString(RawID));
insert = insert.replace("sType",String.valueOf(cur.getInt(TypeID)));

list.add(insert);

}while(cur.moveToNext());
}
cur.close();

 

通话记录

final Uri CALL_LOG = CallLog.Calls.CONTENT_URI;
ContentResolver cr = mContext.getContentResolver();
String[] projection = new String[]{CallLog.Calls.NUMBER, CallLog.Calls.DURATION ,CallLog.Calls.DATE ,CallLog.Calls.TYPE};
Cursor cur = cr.query(CALL_LOG, projection, null, null, "date desc");

ArrayList<String> list = new ArrayList<String>();
list.clear();
if(cur.moveToFirst()){
do{
int numberid = cur.getColumnIndex("number");
int durationid = cur.getColumnIndex("duration");
int dateid = cur.getColumnIndex("date");
int type = cur.getColumnIndex("type");

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = new Date(Long.parseLong(cur.getString(dateid)));

//number text,duration integer,date text,type integer
String insert = "INSERT OR IGNORE INTO th_CALLS(number,duration,date,type) VALUES('numberstr',durationstr,'datestr',typestr)";
insert = insert.replace("numberstr", cur.getString(numberid));
insert = insert.replace("durationstr", cur.getString(durationid));
insert = insert.replace("datestr", dateFormat.format(d));
insert = insert.replace("typestr", cur.getString(type));

list.add(insert);

}while(cur.moveToNext());
}
cur.close();

 

短信

 

final String SMS_URI_ALL = "content://sms/";
ContentResolver cr = mContext.getContentResolver();
Uri uri = Uri.parse(SMS_URI_ALL);
String[] projection = new String[]{"address","body", "date", "type"};
Cursor cur = cr.query(uri, projection, null, null, "date desc");

ArrayList<String> list = new ArrayList<String>();
list.clear();
if(cur.moveToFirst()){
do{
int phoneNumberColumn = cur.getColumnIndex("address");
int smsbodyColumn = cur.getColumnIndex("body");
int dateColumn = cur.getColumnIndex("date");
int typeColumn = cur.getColumnIndex("type");

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = new Date(Long.parseLong(cur.getString(dateColumn)));

//address text,body text,date text,type integer
String insert = "INSERT OR IGNORE INTO th_SMS(address,body,date,type) VALUES('addressstr','bodystr','datestr',typestr)";
insert = insert.replace("addressstr", cur.getString(phoneNumberColumn));
insert = insert.replace("bodystr", Base64.encodeToString(cur.getString(smsbodyColumn).getBytes(), Base64.DEFAULT));
insert = insert.replace("datestr", dateFormat.format(d));
insert = insert.replace("typestr", cur.getString(typeColumn));

list.add(insert);

}while(cur.moveToNext());
}
cur.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: