Android 8.0 Oreo一定得實作的通知頻道Notification channels

作者 | 2017-08-23

從Android 8.0 Oreo開始,Android多了一個「通知頻道(Notification channels)」功能,讓開發者設計出不同類型的通知。如果專案的目標平台是Android 8.0(API level 26)時,開發者一定要實作通知頻道,若APP在7.1或之前的舊版本Android手機中執行,它會以舊的通知方式展示,也就是沒有通知頻道的效果。

通知頻道(Notification channels)

通知小點(Notification dot)

Android 8.0開始,桌面上的圖示終於有類似iOS的圖示Badge,可清楚的看到那個APP有通知了,如下圖箭頭所指處:

通知類別(Notification categories)

當開發者在APP中設計通知頻道後,它在使用者的操作介面中稱為「通知類別(Notification categories」,如下圖:

使用者可以自行決定那個類別要開啟或關閉它,如下圖:

專案目標平台

Android專案的targetSDKVersion要設定為26(8.0 Oreo)才能夠使用Notification channels,如下圖:

建立通知頻道

多了一個android.app.NotificationChannel類別,如果不想為你的APP設計分類功能,也得要在程式中產生一個NotificationChannel,並指定它一些必要資料,如下片段:

idLove是字串,用來分辨不同的通知頻道

之後再使用NotificationManager加入這個頻道:

產生通知並發送

產生通知時,記得要呼叫setChannelId給它這個通知的所屬頻道Id,如下:

開發時遇到比較麻煩反而是package的import問題,之前不少專案用到NotificationCompat,這下有點抖了。

多了一道讓使用者決定與分類,很貼心的設計,但可稍苦了開發人員了,但寫程式不就是一直寫就是了嗎~,小事一椿,懂了,就沒什麼大問題了。

相關文章:

Category: 8.0 Oreo Android Notification 標籤:, , ,

關於 Hank Tom

專長為程式語言、雲端服務開發,Linux系統管理, 任職:利拓科技 技術長,海林行動科技 技術總監 輔仁大學 兼任助理教授 , 為 Android高效入門>深度學習、CentOS 7建置、管理與伺服器架設實戰、Java網路程式設計、雲端網頁程式設計-Google App Engine應用實作 等書作者

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *