Android - 第二个电话联系人号码不显示应用程序图标

问题描述 投票:0回答:1

我有以下代码片段将我们的应用程序图标添加到手机联系人。当手机联系只有一个号码时,它可以正常工作。但是如果为联系人分配了两个号码,则不会显示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);
android android-contentresolver
1个回答
0
投票

我希望它的帮助

来自示例http://wptrafficanalyzer.in/blog/programatically-adding-contacts-with-photo-using-contacts-provider-in-android-example/

// 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());
© www.soinside.com 2019 - 2024. All rights reserved.