当前位置:首页 > 使用ContentProvider获取及添加联系人信息
使用ContentProvider获取及添加联系人信息
1、获取联系人信息
List
List> details=new ArrayList
>(); Uri
Contacts_Uri=ContactsContract.Contacts.CONTENT_URI; Cursor
cursor=getContentResolver().query(Contacts_Uri, null,null,null,null);
while(cursor.moveToNext()){
//获取联系人的ID
String
contactsID=cursor.getString(cursor.getColumnIndex( ContactsContract.Contacts._ID)); Log.d(TAG, \+contactsID);
//获取联系人的姓名
String
contactsName=cursor.getString(cursor.getColumnIndex(
ContactsContract.Contacts.DISPLAY_NAME)); names.add(contactsName);
Log.d(TAG, \+contactsName);
//使用ContentResolver获取联系人的电话信息
Uri
Phones_Uri=ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String
selectionPhone=ContactsContract.CommonDataKinds.Phone.CONTACT_ID+\+contactsID;
Cursor cursorPhone=getContentResolver(). query(Phones_Uri, null, selectionPhone, null, null);
List
count=\+cursorPhone.getColumnCount()); }
while(cursorPhone.moveToNext()){
String
phoneNumber=cursorPhone.getString(cursorPhone.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
detail.add(\电话号码:\+phoneNumber); }
cursorPhone.close();
//使用ContentResolver获取联系人的e-mail信息
Uri
emails_Uri=ContactsContract.CommonDataKinds.Email.CONTENT_URI;
String
selectionEmail=ContactsContract.CommonDataKinds.Email.CONTACT_ID+\+contactsID;
Cursor cursorEmail=getContentResolver(). query(emails_Uri, null, selectionEmail, null, null);
while(cursorEmail.moveToNext()){ String
emailAddress=cursorEmail.getString(cursorEmail.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
detail.add(\:\+emailAddress);
}
cursorEmail.close(); details.add(detail); }
cursor.close();
if(details.size()>0){
Toast.makeText(this,\获取联系人信息成功!\,
Toast.LENGTH_LONG).show(); }
else{
Toast.makeText(this,\获取联系人信息失败!\,
Toast.LENGTH_LONG).show(); }
2、插入联系人信息
ContentValues values=new ContentValues();
//进行空值插入,获取系统返回的rawContactId
Uri
rawContactUri=AddContactsActivity.this.getContentResolver()
.insert(RawContacts.CONTENT_URI, values);
//获取系统返回的rawContactId
long
rawContactId=ContentUris.parseId(rawContactUri); Uri
url=android.provider.ContactsContract.Data.CONTENT_URI; values.clear();
insertName(name, values, url, rawContactId);
insertPhoneNum(phone, values, url, rawContactId); insertEmail(email, values, url, rawContactId);
Toast.makeText(AddContactsActivity.this, \插入联系
人信息成功!\,
Toast.LENGTH_LONG).show();
//插入联系人email
private void insertEmail(String email, ContentValues values, Uri url,
long rawContactId) {
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE,Email.CONTENT_ITEM_TYPE); values.put(Email.DATA, email);
values.put(Email.TYPE, Email.TYPE_WORK);
AddContactsActivity.this.getContentResolver().insert(url, values); }
//插入联系人电话
private void insertPhoneNum(String phone, ContentValues
values, Uri url,
long rawContactId) {
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE);
//电话号码
values.put(Phone.NUMBER, phone); //电话类型
values.put(Phone.TYPE, Phone.TYPE_MOBILE);
AddContactsActivity.this.getContentResolver().insert(url, values);
values.clear(); }
//插入联系人姓名
private void insertName(String name, ContentValues values, Uri url,
long rawContactId) {
values.put(Data.RAW_CONTACT_ID, rawContactId);
//设置内容类型
values.put(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE);
//设置联系人姓名
values.put(StructuredName.GIVEN_NAME, name);
AddContactsActivity.this.getContentResolver().insert(url, values);
values.clear(); }
共分享92篇相关文档