tags: APP
Android
Notification 簡介
- 使用手機時,在左上方狀態列跳出一個通知,讓使用者可以往下滑並點選,這樣的功能就是 Notification 通知訊息
- Notification 會用到的類別:
- NotificationManager:負責整個 Android 系統的通知控管機制,且
extends Object
- Notification:用來儲存相關設定屬性,e.g. 閃燈、震動…,當作真正通知訊息主體之類別
- Notification.Builder:在 API level 11 (Android 3.0) 以後,Notification.Builder 被指定用來建構 Notification
- NotificationManager:負責整個 Android 系統的通知控管機制,且
- 補充:
- Android 3.0 以上選擇 Notification
- Android 3.0 以下選擇 NotificationCompat
Code 程式碼
步驟1:new 一個 method,並記得在 onCreate() 呼叫此方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Notify();
}
// new 一個 method
public void Notify() {
}
步驟2:撰寫 Notify(),初始化 NotificationManager
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
步驟3:使用 Notification.Builder 設定相關屬性
-
必要屬性:
setSmallIcon(int icon)
:小圖示,設置狀態列裡面的圖示,建議的大小是 32×32setContentTitle()
:標題,設置下拉清單裡的標題setContentText()
:詳情文字,設置下拉清單裡的內容
-
選用屬性:
setLargeIcon(Bitmap b)
:大圖示,需要Bitmap物件,建議的大小是 64×64setWhen(long when)
:設定發送通知時間setTicker()
:設置狀態列的顯示的資訊setAutoCancel(boolean autoCancel)
:設置通知被使用者點擊後是否清除setDefaults()
:設定聲音、震動、閃屏…等Notification.DEFAULT_ALL
:聲音、震動、閃屏都使用預設值Notification.DEFAULT_SOUND
:使用聲音提示Notification.DEFAULT_LIGHTS
:使用閃光LED提示Notification.DEFAULT_VIBRATE
:使用手機震動提示- 補充:若使用 手機震動提示 特效,必須先進行以下設定
setVibrate(long[] pattern)
:設定震動模式,由停止時間、震動時間組成的 PatternsetSound(Uri sound)
:設定指定的鈴聲- setLights(int argb, int onMs, int offMs):設定燈光閃爍的顏色、on, off時間
-
Code 程式碼:
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.mipmap.ic_launcher)
.setTicker("xx特價")
.setContentTitle("標題example")
.setContentText("內容example");
步驟4:將步驟3設定好的屬性給 Notification
- notificationManager 常用方法:
cancel(int id)
:清除參數指定 id 的通知notify(int id, Notification notification)
- 使用參數指定的 id 發出通知
- 如果這個 id 的通知已經存在,就使用通知物件更新原來通知的內容。
Notification notification = builder.build();
notificationManager.cancel(0); // 移除id值為0的通知
notificationManager.notify(0, notification);
補充1:SmallIcon設定的畫面都是顯示一個 全色的方塊
-
small icon 需要給帶有透明背景的 png 檔
-
推薦圖檔網站:https://material.io/icons/
補充2:若使用 “手機震動提示” 特效,必須先進行以下設定
- 打開 AndroidManifest.xml
- 加入
<uses-permission android:name="android.permission.VIBRATE"/>
- 範例:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<uses-permission android:name="android.permission.VIBRATE"/>
<application ... >
...
</application>
</manifest>
Reference 參考資料
- NotificationManager 動態圖片:http://www.zendei.com/article/21491.html
- 《Android》『NotificationManager』- 顯示通知訊息(Notifications)的基本用法:https://xnfood.com.tw/android-notificationmanager/
- NotificationCompat 與 Notification 差別:https://yaoandy107.github.io/notificationcompat-vs-notification/
- Android Tutorial 第五堂(2)系統通知服務 - Notification:http://www.codedata.com.tw/mobile/android-tutorial-the-5th-class-2-notification/
- Notification.Builder 官方文件:https://developer.android.com/reference/android/app/Notification.Builder.html
- NotificationManager 官方文件:https://developer.android.com/reference/android/app/NotificationManager.html
- Kotlin 開發第 15 天 Notification( NotificationManager):https://android.devdon.com/archives/281
沒有留言:
張貼留言