java 如何显示抬头通知android
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/33510861/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to show Heads up notifications android
提问by user1837779
How to get a heads up notification.With below code i can only see three dots on status bar and a notification in notification bar.
如何获得提醒通知。使用下面的代码,我只能在状态栏上看到三个点,在通知栏中看到一个通知。
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 , intent,PendingIntent.FLAG_ONE_SHOT);
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.bip);
Uri defaultSoundUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.bip)
.setContentTitle("Temp")
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
采纳答案by tronman
I was having the same problem, but I was using the newer NotificationCompat.Builder()
call which requires a channel ID from a NotificationChannel
.
我遇到了同样的问题,但我使用的是较新的NotificationCompat.Builder()
调用,它需要来自NotificationChannel
.
The notification will only appear as a heads-up notification if the NotificationChannel
is created with an importance value of NotificationManager.IMPORTANCE_HIGH
:
如果NotificationChannel
创建的重要性值为 ,则通知只会显示为提醒通知NotificationManager.IMPORTANCE_HIGH
:
NotificationChannel channel = new NotificationChannel("channel01", "name",
NotificationManager.IMPORTANCE_HIGH); // for heads-up notifications
channel.setDescription("description");
// Register channel with system
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
Show the heads-up notification:
显示提示通知:
Notification notification = new NotificationCompat.Builder(this, "channel01")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("Test")
.setContentText("You see me!")
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH) // heads-up
.build();
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(0, notification);
回答by DiegoQ
This code works for me:
这段代码对我有用:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_media_play)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(Notification.PRIORITY_HIGH);