如何在我的应用程序图标(如 whatsapp)的联系人详细信息中显示多次图标
How to show multiple times icon in contact detail for my app icon like whatsapp
我正在尝试显示多行,因为我的应用程序还支持聊天和呼叫服务。我想像 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();
}
正如您在问题中看到的那样,我只使用 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 Profile");
builder.withValue(ContactsContract.Data.DATA3, "Call " + number);
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, "Message" + number);
ops.add(builder.build());
try {
resolver.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
e.printStackTrace();
}
我正在尝试显示多行,因为我的应用程序还支持聊天和呼叫服务。我想像 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();
}
正如您在问题中看到的那样,我只使用 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 Profile"); builder.withValue(ContactsContract.Data.DATA3, "Call " + number); 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, "Message" + number); ops.add(builder.build()); try { resolver.applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { e.printStackTrace(); }