Notification - 堆疊通知(Stacking Notifications)
在針對手錶設計Notification時,你可能會希望通知可以堆疊起來,
拿Google的範例圖來說,就像是下面的效果。
同一個群組的通知都會擠在一起,超過一則以上就會有一個more的選項,
點下去就會展開,使用者可以選擇想看的通知來閱讀。
那該怎麼實現呢,必須要注意兩點。
1.Notification ID 要不同
如果發兩則Notifciation出去,結果ID相同,後發的會蓋掉前發的。
2.設定相同的Group ID
要疊在一起的Notification,必須要是相同的Group ID。
程式碼如下:
將這個程式跑起來後的結果如下
手錶的通知的確是堆疊起來了,但是手機端的通知也許你不想要這麼多則。
這時候我們可以加入Summary Notification,也就是手機只保留一則,而手錶的是堆疊狀態,以這個例子來說,手機端可以只傳一個通知,上面寫有兩則新聞即可。
因此我們必須創建第三個Notification,填入相同的Group ID,以及設定GroupSummary為真,意思是,這個 Notification是這組通知的摘要(Summary)。
如此一來,你會得到以下的效果。
手錶端只有兩則,而手機端只有摘要通知。
要特別注意一點,若是你拿以前的程式碼來做修改,可能會遇到這種狀況
手機端有摘要通知,又有一般的通知,看起來很智障。
你可以檢查一下你發通知的物件是不是這個
如果是的話,把它改成這個吧,應該能解決你的問題。
2015年5月28日 星期四
2015年5月20日 星期三
[Android - Wear] Notification - 語音輸入(RemoteInput)
Notification - 語音輸入(RemoteInput)
在這個章節會示範如何在Notification裡面加入語音輸入的功能,使用者看到通知後,也許想要回覆這篇通知,卻又不想拿手機出來,就可以使用語音輸入的功能。
先創建一個最基本的Notification,可以參考前面的章節,並進行測試。
這是一個最基本的通知,接著我們加入語音輸入的功能,也是利用前面章節提到的addAction,來增加一個頁面,來實現我們要的語音輸入。
詳細程式碼可以參考這個
如此一來你的通知會多一個頁面,按下去就會像這個樣子。
第一格是語音輸入,後面是我們幫使用者設定的快速輸入,
假如你有實際的手錶就可以試著對它說話,但是如果你是用模擬器的話,
你必須先把setChoices拿掉,只留語音輸入的部分,之後你就可以用鍵盤模擬語音輸入,
靠打字的方式來測試是否正常。
接著我們試著拿到使用者所輸入的文字,先創建以下這個事件。
接著我們就可以將使用者輸入的文字拿出來了。
如此一來就完成了簡單的語音輸入的範例,辨識的準確率還算可以,因此可以拿來做不少的應用。
下一章
Notification - 堆疊通知
詳細程式碼可以參考這個
如此一來你的通知會多一個頁面,按下去就會像這個樣子。
第一格是語音輸入,後面是我們幫使用者設定的快速輸入,
假如你有實際的手錶就可以試著對它說話,但是如果你是用模擬器的話,
你必須先把setChoices拿掉,只留語音輸入的部分,之後你就可以用鍵盤模擬語音輸入,
靠打字的方式來測試是否正常。
接著我們試著拿到使用者所輸入的文字,先創建以下這個事件。
接著我們就可以將使用者輸入的文字拿出來了。
如此一來就完成了簡單的語音輸入的範例,辨識的準確率還算可以,因此可以拿來做不少的應用。
下一章
Notification - 堆疊通知
2015年5月4日 星期一
[Android - Wear] Notification - 設定樣式
設定Notification的樣式
原本內建的Notification就可以設定一些樣式,像是BigTextStyle、InboxStyle,及BigPictureStyle等等,這些設定都會在Wear端有著不一樣的效果。
1.BigTextStyle
1.BigTextStyle
可以使Notification顯示更多的文字內容。
一般的狀態下,若是在setContentText設定過長的文字內容會變成以下這個樣子。
過多的內容會變成...來呈現。
但是在Wear端卻可以完整的顯示出來。
以BigTextStyle來說,事實上是針對手機端的通知來做設定,因為即使不做任何的設定,手錶也能完整地呈現很長的ContentText。
所以,若是你想要手機與手錶都能完整的呈現通知的內容,就必須使用BigTextStyle。
兩個重點提示
1. BigTextStyle只是針對手機端做設定,手錶端並不會有太大的影響。
2. Notification物件還是得setContentText。
2.BigPictureStyle
這個可以發送一張圖片到通知之中。
重點提示
是NotificationCompat.BigPictureStyle物件而不是Notification.BigPictureStyle
小心不要創錯了。
然後Wear會有獨立一個頁面是放圖片。
3.InboxStyle
有點像BigTextStyle,但卻又沒有辦法顯示這麼多文字的內容。
多加幾行內容的style,但是過多還是會變成...,可能算是比較少見的style。
最後執行的結果如下
手機端還是會有一個極限,太多的會變成...,而手錶端倒是沒這個問題。
4.增加更多頁面
也許你想顯示更多的資訊給使用者,那就可以使用此功能。
有點類似之前提到的Action Button,只是這次是多加一個通知的頁面。
只要在你主要的Notification物件之中,在多加入其他的Notification物件就可以了。
這樣一來,你的通知就會多一個頁面,當然你也可以設定他們的Style。
下一章
Notification - 語音輸入(RemoteInput)
2015年4月21日 星期二
[Android - Wear] Notification - 基本介紹
Notification - 基本介紹
對Android Wear來說,Notification算是一個很重要的功能之一,
要特別注意的一點,建立Notifiation時,一定要設定Icon,否則就不會傳送出去。
手機及手錶收到通知時的畫面。
要特別注意的是,這邊的Intent要使用PendingIntent才行。
如此一來,我們的通知會多一個頁面,點下去後就會開啟剛才指定的Class
這樣一來你的通知又會多一個頁面,點下去後就會開啟Google Map,並到台北火車站。
如果模擬器的Google Map有問題,記得上Google Play更新。
如此一來,地圖的頁面就只會在手錶端出現了。
你可能會碰到這個問題,明明背景圖片改了,icon也改,但是手錶還是小機器人。
因為手錶的Notification的icon是對應你APP的icon,因此要改的話要改APP的icon,
而不是單純的只改seticon,seticon只能在手機端上更改。
將AndroidManifest裡面的android:icon改成你要的icon即可。
下一章
Notification - 設定樣式
對Android Wear來說,Notification算是一個很重要的功能之一,
可以快速且明確地提供使用者資訊,當手持設備(手機或平板),與手錶連線時,
手持設備會自動分享Notification到手錶之上。
在開始實作前,先確認你的手錶已經與手機連上線
且有開啟通知的功能!
1.一般的Notification
在手機端,傳送一般的Nofication,手錶也會同時收到。
一般的Nofication需要以下幾個步驟
決定辨識的ID
建立Notifiation
透過NotificationManagerCompat發送出去
要特別注意的一點,建立Notifiation時,一定要設定Icon,否則就不會傳送出去。
手機及手錶收到通知時的畫面。
手錶打開通知的畫面。
2.加入Intent
有時候可能會想讓使用者點了通知後開啟某個頁面。
如此一來,我們的通知會多一個頁面,點下去後就會開啟剛才指定的Class
3.加入Action Button
也許我們會想要有更多的頁面來做其他的事情,像是除了Open on Phone以外,
還想開啟其他頁面,或者是開啟Google Map之類的。
這樣一來你的通知又會多一個頁面,點下去後就會開啟Google Map,並到台北火車站。
如果模擬器的Google Map有問題,記得上Google Play更新。
4.建立只有Wear才有的頁面
上述的例子都是手錶與手機共通都有訊息。
也許有些情況,我們希望特定的頁面只存在手錶端。
就必須靠WearableExtender才能達成。
如此一來,地圖的頁面就只會在手錶端出現了。
5.增加背景圖片及修改icon
透過setLargeIcon即可讓你的Notification有背景圖片。
因為手錶的Notification的icon是對應你APP的icon,因此要改的話要改APP的icon,
而不是單純的只改seticon,seticon只能在手機端上更改。
將AndroidManifest裡面的android:icon改成你要的icon即可。
下一章
Notification - 設定樣式
訂閱:
文章 (Atom)



















