ヘッドアップ通知を取得する方法。以下のコードでは、ステータスバーに3つのドットと通知バーに通知しか表示されません。
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());
私は同じ問題を抱えていましたが、NotificationChannel
からのチャネルIDを必要とする新しいNotificationCompat.Builder()
呼び出しを使用していました。
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);
ヘッドアップ通知を表示します。
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);
このコードは私にとってはうまくいきます:
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);