これはボタンで通知を設定するための私のコードです。
Intent receiverIntent = new Intent(ctx, ResponsivePrefsActivity.class);
PendingIntent pReceiverIntent = PendingIntent.getActivity(ctx, 1, receiverIntent, 0);
Intent clearIntent = new Intent(ctx, ResponsivePrefsActivity.class);
clearIntent.setAction("clear");
PendingIntent pClearIntent = PendingIntent.getActivity(ctx, 1, clearIntent, 0);
Intent colorsIntent = new Intent(ctx, ResponsivePrefsActivity.class);
colorsIntent.setAction("colors");
PendingIntent pColorsIntent = PendingIntent.getActivity(ctx, 1, colorsIntent, 0);
Intent animationIntent = new Intent(ctx, ResponsivePrefsActivity.class);
animationIntent.setAction("animation");
PendingIntent pAnimation = PendingIntent.getActivity(ctx, 1, animationIntent, 0);
Notification.Builder builder;
builder = new Notification.Builder(ctx).setSmallIcon(R.drawable.ic_launcher).setAutoCancel(false)
.setContentTitle("Draw Me: A Live Wallpaper").setContentText("Never get bored again!")
.setContentIntent(pReceiverIntent).addAction(R.raw.ic_menu_close_clear_cancel, "Clear", pClearIntent)
.addAction(R.raw.ic_menu_edit, "Colors", pColorsIntent).addAction(R.raw.ic_menu_play_clip, "Animation", pAnimation);
Notification notification = builder.build();
NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
通知は表示されますが、ボタンは表示されません。デバイスのAndroid 4.1.1フラグメントでこの通知を設定しました。何が間違っていますか?ありがとう!
本当に厄介なことをお話ししましょう。進行中の通知に何かがある場合、ボタンは表示されません。通常、USB経由でPCに電話が接続されている場合に発生します。これで問題が解決することを願っています
同様の問題を抱えている人へのリマインダー。 Android Notifications Guide に従って、通知は2つのスタイルで表示できます。
したがって、通知をBig Viewに強制的に表示するには、通知リストの一番上に通知を配置するだけです。 Whenプロパティを0に設定すると、通知の中で最も古いものになります! (時々、これは望ましくないかもしれませんが)。だから電話
setWhen(0)
あなたの通知に、あなたは完了です。
テキストを編集しているときに、メディアプレーヤーコントロールやIMEスイッチャーオプションなど、リストに進行中の通知が存在する場合、ボタンは表示されません。
幸いなことに、これは通知の優先度を「ナイス」および「ハイ」に設定するだけで克服できます。これを回避するためにNotification.PRIORITY_MAXを使用したことがありますが、PRIORITY_HIGHも同様に機能するようです。次のように設定します。
Notification notification = new Notification.Builder(myContext)
.setContentTitle(res.getString(R.string.my_title))
.setPriority(Notification.PRIORITY_MAX)
//The rest of your options
.build();
これをやるだけ:::
.setPriority(Notification.PRIORITY_MAX)
.setWhen(0)
完全なコードは次のとおりです。
Notification noti = new Notification.Builder(this)
.setContentTitle("New mail from " + "[email protected]")
.setContentText("Subject").setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(pIntent)
.setPriority(Notification.PRIORITY_MAX)
.setWhen(0)
.addAction(R.drawable.ic_launcher, "Call", pIntent)
.addAction(R.drawable.ic_launcher, "More", pIntent)
.addAction(R.drawable.ic_launcher, "And more", pIntent).build();
私の場合、RemoteViews()で通知コンテンツにカスタムビューを使用していたため、アクションボタンは表示されませんでした