web-dev-qa-db-ja.com

Android通知ボタンが表示されない

これはボタンで通知を設定するための私のコードです。

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フラグメントでこの通知を設定しました。何が間違っていますか?ありがとう!

36

本当に厄介なことをお話ししましょう。進行中の通知に何かがある場合、ボタンは表示されません。通常、USB経由でPCに電話が接続されている場合に発生します。これで問題が解決することを願っています

126
CommonMan

同様の問題を抱えている人へのリマインダー。 Android Notifications Guide に従って、通知は2つのスタイルで表示できます。

  • 通常の表示では、アクションボタンはデフォルトでは表示されません(また、ユーザーが表示するには通知を展開する必要があります)
  • 通知が通知リストの最初にある場合、またはユーザーが通知を展開した場合に表示されるビッグビュー。

したがって、通知をBig Viewに強制的に表示するには、通知リストの一番上に通知を配置するだけです。 Whenプロパティを0に設定すると、通知の中で最も古いものになります! (時々、これは望ましくないかもしれませんが)。だから電話

setWhen(0)

あなたの通知に、あなたは完了です。

28
paulahniuk

テキストを編集しているときに、メディアプレーヤーコントロールや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();
23
Captain Blammo

これをやるだけ:::

.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();
16
user2190487

私の場合、RemoteViews()で通知コンテンツにカスタムビューを使用していたため、アクションボタンは表示されませんでした

0
s-hunter