108 votes

Comment ajouter un bouton aux notifications dans Android ?

Mon application diffuse de la musique et lorsque les utilisateurs ouvrent l'écran des notifications en faisant glisser le curseur depuis le haut de l'écran (ou généralement depuis le bas de l'écran à droite sur les tablettes), je veux leur présenter un bouton pour arrêter la musique en cours de diffusion et la relancer s'ils le souhaitent.

Je n'ai pas l'intention de placer un widget sur l'écran d'accueil de l'utilisateur, mais seulement dans les notifications. Comment puis-je faire cela ?

1voto

yuvrajsinh Points 1162

Vous pouvez ajouter un bouton comme ci-dessous et effectuer une action sur ce bouton. Je l'ai également fait pour moi comme ci-dessous, veuillez vérifier.

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_logo)
                        .setAutoCancel(true)
                        .setContentTitle(name)
                        .setContentText(body)
                        .setGroupSummary(true)
                        .addAction(android.R.drawable.ic_menu_directions, "Mark as read", morePendingIntent);

//plusPendingIntent(faites votre travail)

  PendingIntent morePendingIntent = PendingIntent.getBroadcast(
                        this,
                        REQUEST_CODE_MORE,
                        new Intent(this, NotificationReceiver.class)
                                .putExtra(KEY_INTENT_MORE, REQUEST_CODE_MORE)
                                .putExtra("bundle", object.toString()),
                        PendingIntent.FLAG_UPDATE_CURRENT
                );

0voto

Je ne sais pas si c'est la bonne méthode ou non, mais elle fonctionne.

  1. Créer un BroadCastReceiver pour recevoir les données lorsque le bouton est pressé.

    public class MyBroadCastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {

        String log = "URI: " + intent.toUri(Intent.URI_INTENT_SCHEME);
        Log.d("my", "LOG:::::::" + log);
    }

    }

  2. Maintenant, dans n'importe quelle activité où vous voulez créer la notification, -

    Intent intent = new Intent(); intent.setAction("unique_id"); intent.putExtra("key", "any data you want to send when button is pressed"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, REQUEST_CODE, intent, 0);

  3. Utilisez maintenant cette intention en attente lorsque vous créez la notification et, enfin, vous devez enregistrer cette diffusion afin de la recevoir dans la classe MyBroadCastReceiver.

    BroadcastReceiver br = new MyBroadCastReceiver(); IntentFilter filter = new IntentFilter("unique_id"); registerReceiver(br, filter);

Maintenant, si vous voulez faire certaines choses lorsque le bouton est enfoncé, vous pouvez le faire dans la section onReceive() méthode dans MyBroadCastReceiver classe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X