102 votes

Android 4.1 : Comment vérifier que les notifications sont désactivées pour l'application ?

Android 4.1 offre à l'utilisateur une case à cocher permettant de désactiver les notifications pour une application spécifique.

Cependant, en tant que développeur, nous n'avons aucun moyen de savoir si un appel à la notification a été efficace ou non.

J'ai vraiment besoin de vérifier si les notifications sont désactivées pour l'application en cours, mais je ne trouve aucun paramètre pour cela dans l'API.

Existe-t-il un moyen de vérifier ce paramètre dans le code ?

3voto

sai Pavan Kumar Points 204

J'utilise cette méthode pour vérifier si les notifications sont activées ou non, les méthodes mentionnées ci-dessus fonctionnent pour vérifier si les notifications sont activées ou non. Mais à partir de Android 8 à partir de la création de notifications nous devons d'abord créer un canal donc d'Oreo, Nous devons vérifier si votre canal de notification est activé ou non. .

    /**
     * Checking Whether notifications are enabled or not
     * @return true if notifications are enabled otherwise false
     */
    public static final String CHANNEL_ID = "your_channel_id";

    private boolean isNotificationChannelEnabled(){
        if(NotificationManagerCompat.from(this).areNotificationsEnabled()) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                NotificationChannel channel = manager.getNotificationChannel(CHANNEL_ID);
                if (channel == null)
                    return true; //channel is not yet created so return boolean
                // by only checking whether notifications enabled or not
                return channel.getImportance() != NotificationManager.IMPORTANCE_NONE;
            }
            return true;
        }
        return false;
    }

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