你需要做两件事:
确保你的通知已正确配置。请参阅:https://developer.android.com/guide/topics/ui/notifiers/notifications#Heads-up
并确保手机已正确配置(我认为这是大多数人卡住的地方)。
步骤1. 配置通知。
首先,像这样注册您的通知渠道
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel channel = new NotificationChannel("1", name, importance);
channel.setDescription(description);
channel.setShowBadge(true);
channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
然后,像这样创建通知:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, "1")
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle(textTitle)
.setContentText(textContent)
.setDefaults(DEFAULT_SOUND | DEFAULT_VIBRATE)
.setPriority(Notification.PRIORITY_MAX);
最后,按照通常的方式发送通知,例如:
Finally, send the notifications as you would do normally, e.g.:
Notification buildNotification = mBuilder.build()
NotificationManager mNotifyMgr = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE)
mNotifyMgr.notify(001, buildNotification)
步骤2. 配置手机。
我注意到我需要在我的手机上(小米Note 3)启用一些额外的设置:
以下是一些进入菜单的方式:
- 长按通知,从通知栏进入。
- 前往:设置 > 已安装应用程序 > 选择您的应用程序 > 通知
- 在前面一步的基础上,您可以通过使用此意图将用户部分地带到已安装的应用程序菜单来帮助他们:
startActivity(new Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS));
最后,当您到达此菜单时,启用一个名为“悬浮通知”的设置(该设置的名称因设备而异)。