如何在我的应用程序图标(如whatsapp)的联系人详细信息中多次显示图标

时间:2019-03-26 18:14:31

标签: android-contentprovider android-contacts android-syncadapter

我正在尝试显示多行,因为我的应用程序还支持聊天和呼叫服务。我想显示出与whatsap相同的效果,如下图所示。

我已经使用不同博客的一些帮助实现了同步适配器和所有其他功能。我已经成功添加了一行,但是我想要多行,因为我们可以在该图片中看到whatsap。我想显示多行,如图所示。

Please see this for better understanding


ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
            builder.withValue(RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME);
            builder.withValue(RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE);
            builder.withValue(RawContacts.SYNC1, contact.name);
            ops.add(builder.build());
  builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
            builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
            builder.withValue(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/com.example.ajay.contacts_4");
builder.withValue(ContactsContract.Data.DATA1, contact.name);
    builder.with Value(ContactsContract.Data.DATA2, "SyncProviderDemo Profile");
  builder.withValue(ContactsContract.Data.DATA3, "View profile");
            ops.add(builder.build());


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

1 个答案:

答案 0 :(得分:0)

正如您在问题中看到的,我仅使用ContentProviderOperation.newInsert插入了一次。但是当我为同一联系人添加多个时间然后应用该批处理时。 然后一个联系人包含多行。

  

builder =   ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);               builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,   0);               builder.withValue(ContactsContract.Data.MIMETYPE,              “ vnd.android.cursor.item / com.example.ajay.contacts_4”);               builder.withValue(ContactsContract.Data.DATA1,contact.name);               builder.with Value(ContactsContract.Data.DATA2,“ SyncProviderDemo配置文件”);                builder.withValue(ContactsContract.Data.DATA3,“呼叫” +号码);               ops.add(builder.build());

     

builder =   ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);               builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,   0);               builder.withValue(ContactsContract.Data.MIMETYPE,              “ vnd.android.cursor.item / com.example.ajay.contacts_4”);               builder.withValue(ContactsContract.Data.DATA1,contact.name);               builder.with Value(ContactsContract.Data.DATA2,“ SyncProviderDemo配置文件”);                builder.withValue(ContactsContract.Data.DATA3,“消息” +数字);               ops.add(builder.build());            尝试{                   resolver.applyBatch(ContactsContract.AUTHORITY,ops);               } catch(Exception e){                   e.printStackTrace();               }