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());
}
}