关于android 联系人,短信,电话记录,需要的uri,数据库中获取的小结
// 短信会话Uri
public static final Uri CONVERSATION_URI = Uri.parse(“content://mms-sms/conversations”);
// 短信Uri 对应的ContentProvider会协调处理短信的收件箱和发件箱
public static final Uri SMS_URI = Uri.parse(“content://sms”);
// 短信发件箱:
public static final Uri SMS_SEND_URI = Uri.parse(“content://sms/sent”);
// 短信收件箱:
public static final Uri SMS_INBOX_URI = Uri.parse(“content://sms/inbox”);
截获短信的步骤
1.添加receive sms的权限
2.当有短信发来时候,系统会发出一个广播有序广播,所以要订阅这个系统广播
android.provider.Telephony.SMS_RECEIVED
把广播接收器的权限设置为1000
3.定义广播接收器重写onReceive()方法,从intent中获得并解析短信的内容,把短信的内容存入收件箱。
4. Android设备接收到的SMS是以pdu形式的(protocol description unit)。所以从intent提取数据时就会遇到pdus。
读取联系人的URI:
/**
* 所有联系人的查询语句
* cotacts2联系人数据库中
* 与联系人相关的几张数据表
* contacts
* data
* mimetypes
*/
Cursor contactsCusor = context.getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,
new String[] { Contacts._ID, Contacts.PHOTO_ID,
Contacts.LOOKUP_KEY }, null, null, null);
Cursor cursor = context.getContentResolver().query(
ContactsContract.Data