android通訊錄備份恢復代碼邏輯

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

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章