Android - 如何将通知托盘放在前面几秒钟

时间:2017-10-09 08:56:32

标签: android firebase-cloud-messaging android-notifications android-notification-bar

我在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());

由于

2 个答案:

答案 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