将联系人图像添加到MessagingStyle通知“人员”

时间:2019-03-31 03:24:00

标签: android notifications

我希望我的通知包含联系人的图像。 我正在使用NotificationCompat和MessagingStyle来显示联系人的聊天消息。

在人身上使用.setIcon时此方法有效,但是图像是方形的,因此我想使用setUri,但它不显示图像,而是在圆圈中看到联系人的第一个首字母。

这是我用于通知的代码。

if (optind < argc) {
    filename = argv[optind];
} else {
    fprintf(stderr, "Usage: %s -a|-b|-c filename\n", argv[0]);
    exit(2);
}

对于Person person = new Person.Builder() // .setIcon(contactIcon) .setName(displayName) .setUri(contentLookupURI) .setKey(contactDetail) .build(); NotificationCompat.MessagingStyle chatMessageStyle = new NotificationCompat.MessagingStyle(person); NotificationCompat.MessagingStyle.Message notificationMessage = new NotificationCompat.MessagingStyle.Message( contentText, System.currentTimeMillis(), person ); chatMessageStyle.addMessage(notificationMessage); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, NOTIFICATION_MESSAGES_CHANNEL_ID) .setSmallIcon(icon) // notification icon .setPriority(NotificationCompat.PRIORITY_HIGH) .setStyle(chatMessageStyle) .setOnlyAlertOnce(true) .setContentTitle(displayName); 中使用的联系人URI,我正在使用一个库来获取联系人ID和lookupkey,然后使用以下方法:

.setUri

哪个生成了: contactLookupURI = ContactsContract.Contacts.getLookupUri(contactsList.get(0).getId(), contactsList.get(0).getLookupKey()); ,对我来说是正确的。

example notification

我不确定MessagingStyle方法的这种形式有多新,因为我找不到与Person对象一起使用的许多示例。

0 个答案:

没有答案