android通讯录备份恢复
新增和修改
目前用的是新增,云端判断返回的手机号是否为空
/**
* 向手机中录入联系人信息
*
* @param contactListBean 要录入的联系人信息
*/
public void addContacts(ContactListBean contactListBean) {
try {
ContentValues values = new ContentValues();
//首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
//往data表入姓名数据
values.clear();
values.put(ContactsContract.RawContacts.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, contactListBean.getContactsName());
getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
values.clear();
values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
// 获取联系人电话信息
List<PhoneListBean> phoneList = contactListBean.getPhoneList();
/** 录入联系电话 */
for (PhoneListBean phoneInfo : phoneList) {
if(TextUtils.isEmpty(phoneInfo.getNumber())){
continue;
}
// 设置录入联系人电话信息
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneInfo.getNumber());
// values.put(ContactsContract.CommonDataKinds.Phone.TYPE, phoneInfo.getType());
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
// 往data表入电话数据
getContentResolver().insert(
android.provider.ContactsContract.Data.CONTENT_URI, values);
}
// // 获取联系人邮箱信息
// List<ContactInfo.EmailInfo> emailList = info.getEmail();
//
// /** 录入联系人邮箱信息 */
// for (ContactInfo.EmailInfo email : emailList) {
// values.clear();
// values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
// values.put(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
// // 设置录入的邮箱信息
// values.put(ContactsContract.CommonDataKinds.Email.DATA, email.email);
// values.put(ContactsContract.CommonDataKinds.Email.TYPE, email.type);
// // 往data表入Email数据
// context.getContentResolver().insert(
// android.provider.ContactsContract.Data.CONTENT_URI, values);
// }
} catch (Exception e) {
EvtLog.e(TAG, "e.toString==" + e.toString());
}
}
public void updateContacts(ContactListBean contactListBean,String rawContactIdStr) {
try {
ContentValues values = new ContentValues();
long rawContactId =Long.parseLong(rawContactIdStr);
values.clear();
values.put(android.provider.ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
// 获取联系人电话信息
List<PhoneListBean> phoneList = contactListBean.getPhoneList();
/** 录入联系电话 */
for (PhoneListBean phoneInfo : phoneList) {
if(TextUtils.isEmpty(phoneInfo.getNumber())){
continue;
}
// 设置录入联系人电话信息
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneInfo.getNumber());
// values.put(ContactsContract.CommonDataKinds.Phone.TYPE, phoneInfo.getType());
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
// 往data表入电话数据
String where = ContactsContract.Data.RAW_CONTACT_ID + "=? AND "
+ ContactsContract.Data.MIMETYPE + "=?";
String[] selectionArgs = new String[] { String.valueOf(rawContactId),
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE };
getContentResolver().update(ContactsContract.Data.CONTENT_URI, values,
where, selectionArgs);
EvtLog.e(TAG,"phoneInfo.getNumber()=="+phoneInfo.getNumber());
}
} catch (Exception e) {
EvtLog.e(TAG, "e.toString==" + e.toString());
}
}