我有以下代码片段将我们的应用程序图标添加到手机联系人。当手机联系只有一个号码时,它可以正常工作。但是如果为联系人分配了两个号码,则不会显示app icon
(应用程序图标)。下面代码中的“results”数组返回一个有效的ID,表示插入了一条记录,但是没有显示图标。请告诉我可能出错的地方。感谢您的帮助。
ContentResolver resolver = Utils.appContext.getContentResolver();
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(RawContacts.CONTENT_URI, true))
.withValue(RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
.withValue(RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
.build());
ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
builder.withValueBackReference(Data.RAW_CONTACT_ID, 0);
builder.withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, displayName);
ops.add(builder.build());
ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true))
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, CONTACTS_MIME_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNum)
.build());
ContentProviderResult[] results = resolver.applyBatch(ContactsContract.AUTHORITY, ops);
我希望它的帮助
// to insert Photo in the table ContactsContract.Data
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
.withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
.withValue(ContactsContract.Data.MIMETYPE,Photo.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO,stream.toByteArray())
.build());