Notification之適配總結

 

 

 

 

11. android通知欄8.0系統報錯誤:android

 

NotificationService: No Channel found for pkg=xxx.xxx.xxx, channelId=12345, id=12345, tag=null, opPkg=xxx.xxx.xxx, callingUid=10085, userId=0, incomingUserId=0, notificationUid=10085, notification=Notification…api

/**
* Notification:8.0系統和8.0系統之下的邏輯
*/
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void postNotification(Context context) {
int channelId = 0x22222;
Notification.Builder builder;
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
//NotificationManagerCompat managerCompat= (NotificationManagerCompat) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {//8.0系統之上
NotificationChannel channel = new NotificationChannel(String.valueOf(channelId), "chanel_name", NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
builder = new Notification.Builder(context, String.valueOf(channelId));
//或者
//builder = new Notification.Builder(context);
//builder.setChannelId(String.valueOf(channelId)); //建立通知時指定channelId
} else {
builder = new Notification.Builder(context);
}
//須要跳轉指定的頁面
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);

builder.setTicker("new message")
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("標題")
.setContentText("內容")
.setContentIntent(pendingIntent);
manager.notify(channelId, builder.build());
}

pastingpost

相關文章
相關標籤/搜索