联系人短信记录读取
在完成通讯录的消息界面时,需要读取联系人的短信记录
具体过程如下:
首先是权限处理
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
读取方法如下:
public static Uri SMS_INBOX = Uri.parse("content://sms/");
public static List<Sms>getSmsFromPhone(Context context) {
List<Sms>list=new ArrayList<>();
ContentResolver cr =context.getContentResolver();
String[] projection = new String[] {"_id", "address", "person","body", "date", "type" };
Cursor cur = cr.query(SMS_INBOX, projection, null, null, "date desc");
while(cur.moveToNext()) {
String number = cur.getString(cur.getColumnIndex("address"));//手机号
String name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表
String body = cur.getString(cur.getColumnIndex("body"));//短信内容
Long date=cur.getLong(cur.getColumnIndex("date"));
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date d = new Date(date);
String strDate = dateFormat.format(d);
//至此就获得了短信的相关的内容
Sms sms=new Sms();
GeticonForGetmsg.icon(context,number);
sms.setPhone(number);
sms.setBody(body);
sms.setDate(strDate);
list.add(sms);
}
return list;
}