wangming1993 / issues

记录学习中的一些问题,体会与心得 https://wangming1993.github.io/issues
8 stars 4 forks source link

android 通讯录相关 #91

Open wangming1993 opened 5 years ago

wangming1993 commented 5 years ago
String rawContactId = cursor.getString(cursor
        .getColumnIndex(Phone.RAW_CONTACT_ID));
String contactId = cursor.getString(cursor
        .getColumnIndex(Phone.CONTACT_ID));

values.put(StructuredName.DISPLAY_NAME, displayName);
String where = Data.CONTACT_ID + "=? AND "
        + ContactsContract.Data.MIMETYPE + "=?";
String[] selectionArgs = {contactId, StructuredName.CONTENT_ITEM_TYPE};
resolver.update(ContactsContract.Data.CONTENT_URI, values,
        where, selectionArgs);
// 电话号码已存在,更新通讯录
c
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation
        .newUpdate(ContactsContract.Data.CONTENT_URI)
        .withSelection(
                ContactsContract.Data.CONTACT_ID
                        + "=? AND "
                        + ContactsContract.Data.MIMETYPE
                        + "=?",
                new String[]{
                        contactId,
                        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE})
        .withValue(
                ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
                displayName).build());

try {
    resolver.applyBatch(
            ContactsContract.AUTHORITY, ops);
} catch (Exception e) {

Uri rawContactUri = resolver.insert(RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.clear();

values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(StructuredName.GIVEN_NAME, displayName);
// 向联系人URI添加联系人名字
resolver.insert(Data.CONTENT_URI, values);
values.clear();

// 联系人的电话号码
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);
// 向联系人电话号码URI添加电话号码
resolver.insert(Data.CONTENT_URI, values);
values.clear();