Android 8.0實現(xiàn)發(fā)送通知
更新時間:2020年07月29日 11:01:15 作者:愛碼士_yan
這篇文章主要為大家詳細介紹了Android 8.0實現(xiàn)發(fā)送通知,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
在Android8.0以后,針對Notification 通知api做了修改,新增了通知渠道(NotificationCannel)。下面就把demo的詳細代碼記錄下:
1.Application 為NotificationManager添加通知頻道
import android.app.Application;
import com.xinrui.ndkapp.notification.NotificationChannels;
public class NdkApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
NotificationChannels.createAllNotificationChannels(this);
}
}
2.NotificationChannels 類
public class NotificationChannels {
public final static String CRITICAL = "critical";
public final static String IMPORTANCE = "importance";
public final static String DEFAULT = "default";
public final static String LOW = "low";
public final static String MEDIA = "media";
public static void createAllNotificationChannels(Context context) {
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if(nm == null) {
return;
}
NotificationChannel mediaChannel = new NotificationChannel(
MEDIA,
context.getString(R.string.app_name),
NotificationManager.IMPORTANCE_DEFAULT);
mediaChannel.setSound(null,null);
mediaChannel.setVibrationPattern(null);
nm.createNotificationChannels(Arrays.asList(
new NotificationChannel(
CRITICAL,
context.getString(R.string.app_name),
NotificationManager.IMPORTANCE_HIGH),
new NotificationChannel(
IMPORTANCE,
context.getString(R.string.app_name),
NotificationManager.IMPORTANCE_DEFAULT),
new NotificationChannel(
DEFAULT,
context.getString(R.string.app_name),
NotificationManager.IMPORTANCE_LOW),
new NotificationChannel(
LOW,
context.getString(R.string.app_name),
NotificationManager.IMPORTANCE_MIN),
//custom notification channel
mediaChannel
));
}
}
3.發(fā)送通知
public void sendSimpleNotification(Context context, NotificationManager nm) {
//創(chuàng)建點擊通知時發(fā)送的廣播
Intent intent = new Intent(context, NotificationMonitorService.class);
intent.setAction("android.service.notification.NotificationListenerService");
PendingIntent pi = PendingIntent.getService(context,0,intent,0);
//創(chuàng)建刪除通知時發(fā)送的廣播
Intent deleteIntent = new Intent(context,NotificationMonitorService.class);
deleteIntent.setAction(Intent.ACTION_DELETE);
PendingIntent deletePendingIntent = PendingIntent.getService(context,0,deleteIntent,0);
//創(chuàng)建通知
Notification.Builder nb = new Notification.Builder(context, NotificationChannels.DEFAULT)
//設置通知左側的小圖標
.setSmallIcon(R.drawable.ic_notification)
//設置通知標題
.setContentTitle("Simple notification")
//設置通知內容
.setContentText("Demo for simple notification!")
//設置點擊通知后自動刪除通知
.setAutoCancel(true)
//設置顯示通知時間
.setShowWhen(true)
//設置通知右側的大圖標
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.drawable.ic_notifiation_big))
//設置點擊通知時的響應事件
.setContentIntent(pi)
//設置刪除通知時的響應事件
.setDeleteIntent(deletePendingIntent);
//發(fā)送通知
nm.notify(Notificaitons.NOTIFICATION_SAMPLE,nb.build());
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android開發(fā)Compose remember原理解析
這篇文章主要為大家介紹了Android開發(fā)Compose remember原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
Android開發(fā)ThreadPoolExecutor與自定義線程池詳解
這篇文章主要為大家介紹了Android開發(fā)ThreadPoolExecutor與自定義線程池詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
JetpackCompose Navigation導航實現(xiàn)流程
Navigation是Jetpack用于Android導航的組件,作用是處理頁面跳轉,以及頁面跳轉過程中的交互。使用Navigation,你就需要為每個頁面設定一條唯一路徑,它是一個String常量,形式是DeepLink的樣子,從一個頁面跳轉到另一個頁面,它通過輸入目的地的路徑進行轉跳2023-01-01

