您好,我需要添加推送通知以代表公司欢迎用户 这是我的代码,但是不起作用
NotificationManager notif=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify=new Notification.Builder
(getApplicationContext()).setContentTitle("BergEsapes").setContentText("Kindly Login Your Account").
setContentTitle("User Register Succesfully").setSmallIcon(R.drawable.appicon).build();
notify.flags |= Notification.FLAG_AUTO_CANCEL;
notif.notify(0, notify);
答案 0 :(得分:2)
我认为您不是要创建通知频道。这就是为什么它不显示通知。 Android Oreo(8.0)及更高版本要求您必须首先创建一个频道。请检查下面的代码以获得更好的理解。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
builder.setChannelId("YOUR_PACKAGE_NAME");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
"YOUR_PACKAGE_NAME",
"YOUR_APP_NAME",
NotificationManager.IMPORTANCE_DEFAULT
);
if (notificationManager != null) {
notificationManager.createNotificationChannel(channel);
}
}
完整的解决方案如下:
private void showNotification(String message){
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,"default")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("Notification Title")
.setContentText(message)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
builder.setChannelId("YOUR_PACKAGE_NAME");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
"YOUR_PACKAGE_NAME",
"YOUR_APP_NAME",
NotificationManager.IMPORTANCE_DEFAULT
);
if (notificationManager != null) {
notificationManager.createNotificationChannel(channel);
}
}
notificationManager.notify(NOTIFICATION_ID,builder.build());
}