以下內(nèi)容翻譯自android wear的官方教程瘸爽,本人水平有限粱哼,如有錯誤歡迎指出
home
以下正文
在你的手機上崎苗,你不應(yīng)該給相似的內(nèi)容產(chǎn)生多條通知。比如用戶收到了兩條新信息時伞剑,你不應(yīng)該生成兩條信息而是一條總結(jié)性信息:“2條新消息”斑唬。
但是總結(jié)消息在手表上是不適用的,因為如果不能在手表上閱讀每條信息的細節(jié)黎泣,用戶們就需要打開手機來查看消息內(nèi)容恕刘。所以在手表上,你需要把所有的信息堆疊起來聘裁。被堆疊起來的信息看起來就像一張卡片雪营,用戶可以分別的查看每條信息。而且衡便, setGroup()方法讓你的app在手機上仍然顯示一條總結(jié)性的消息献起。
把通知添加到組里
為了添加到正確的組,你要在調(diào)用setGroup方法的時候需要指定一個key來標識镣陕。
final static String GROUP_KEY_EMAILS = "group_key_emails";
// 建立Notification并設(shè)置到合適的組里
Notification notif = new NotificationCompat.Builder(mContext)
.setContentTitle("New mail from " + sender1)
.setContentText(subject1)
.setSmallIcon(R.drawable.new_mail)
.setGroup(GROUP_KEY_EMAILS)
.build();
// 發(fā)送通知
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(this);
notificationManager.notify(notificationId1, notif);
接下來谴餐,當(dāng)你在創(chuàng)建其他通知的時候,指定相同的key呆抑。這個通知將會和上面的這個通知堆疊起來岂嗓。
Notification notif2 = new NotificationCompat.Builder(mContext)
.setContentTitle("New mail from " + sender2)
.setContentText(subject2)
.setSmallIcon(R.drawable.new_mail)
.setGroup(GROUP_KEY_EMAILS)
.build();notificationManager.notify(notificationId2, notif2);
默認的,通知會按照你添加的順序來排列鹊碍,最新的通知會顯示在最上面厌殉。你也可以通過調(diào)用 setSortKey()來按照你想要的方式排序食绿。
添加總結(jié)性的消息
在你的手機上提供總結(jié)性的消息仍然是非常重要的,用setGroupSummary()來添加這個專用的總結(jié)消息公罕。
這個總結(jié)消息將不會出現(xiàn)在你的手表上器紧,而只會出現(xiàn)在你的手機上。
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(),
R.drawable.ic_large_icon);
// 建立 InboxStyle 風(fēng)格的通知
Notification summaryNotification = new NotificationCompat.Builder(mContext)
.setContentTitle("2 new messages")
.setSmallIcon(R.drawable.ic_small_icon)
.setLargeIcon(largeIcon)
.setStyle(new NotificationCompat.InboxStyle()
.addLine("Alex Faaborg Check this out")
.addLine("Jeff Chang Launch Party")
.setBigContentTitle("2 new messages")
.setSummaryText("johndoe@gmail.com"))
.setGroup(GROUP_KEY_EMAILS)
.setGroupSummary(true)
.build();
notificationManager.notify(notificationId3, summaryNotification);
這個通知使用了 NotificationCompat.InboxStyle楼眷,這種風(fēng)格非常適用與郵件或者消息信息铲汪。你也可以使用其他在 NotificationCompat里定義的style或無style的總結(jié)消息。
tip:如果你想得到圖片上的文字效果罐柳,你可以閱讀 Styling with HTML markup和 Styling with Spannables
總結(jié)消息也可以通過其他各種方式影響手表上通知的樣子掌腰,比如你可以設(shè)置背景圖片和添加action.
下面是添加背景圖片的例子。
Bitmap background = BitmapFactory.decodeResource(getResources(),
R.drawable.ic_background);
NotificationCompat.WearableExtender wearableExtender =
new NotificationCompat.WearableExtender()
.setBackground(background);
// 建立InboxStyle notification
Notification summaryNotificationWithBackground =
new NotificationCompat.Builder(mContext)
.setContentTitle("2 new messages")
...
.extend(wearableExtender)
.setGroup(GROUP_KEY_EMAILS)
.setGroupSummary(true)
.build();