我在FCM消息服务的onMessageReceived中实现了以下代码,以便在应用程序处于前台时向用户显示通知。
通知已成功提升并正确显示在托盘中。 但是,我的要求是,当应用程序处于前台时,通知托盘会在前面停留几秒钟然后默认情况下必须隐藏。怎么做到这一点?
NotificationCompat.Builder notificationBuilder = new
NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_notifications_black_24dp)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(true)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(2 , notificationBuilder.build());
由于
答案 0 :(得分:1)
因此,如果要以编程方式显示通知栏,请执行以下操作:
Object sbservice = getSystemService( "statusbar" );
Class<?> statusbarManager = Class.forName( "android.app.StatusBarManager" );
Method showsb;
if (Build.VERSION.SDK_INT >= 17) {
showsb = statusbarManager.getMethod("expandNotificationsPanel");
}
else {
showsb = statusbarManager.getMethod("expand");
}
showsb.invoke( sbservice );
您还需要向Manifest添加以下权限:
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
答案 1 :(得分:0)
将通知优先级设置为Notification.PRIORITY_HIGH或Notification.PRIORITY_MAX