Notification之适配总结


11. android通知栏8.0系统报错误:

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…
/**
* 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());
}
pasting

猜你喜欢

转载自www.cnblogs.com/awkflf11/p/9484486.html