39 votes

Le bouton ALLOW ne fonctionne pas après la mise à jour

Sur les appareils qui ont installé la dernière mise à jour d'Android Marshmallow - c'est-à-dire Juin 2016 mise à jour, lorsque je demande des autorisations, le bouton ALLOW ne fonctionne pas.

J'ai testé avec ces 2 appareils :

Nexus 6p (version Andoid - 6.0.1, numéro de build - MTC19V)

Nexus 7 (Android version 6.0.1, Build number - MOB30M)

Les deux ont la dernière mise à jour, et lorsque je demande des autorisations, la boîte de dialogue s'affiche, mais je ne peux pas appuyer sur le bouton ALLOW.

Voici le code que j'utilise pour demander des autorisations :

public void showPermissionsDialog() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        int hasWriteExternalStoragePermission = activity.checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
        int hasWriteGetAccountsPermission = activity.checkSelfPermission(android.Manifest.permission.GET_ACCOUNTS);

        if (hasWriteExternalStoragePermission != PackageManager.PERMISSION_GRANTED || hasWriteGetAccountsPermission != PackageManager.PERMISSION_GRANTED) {
            activity.requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.GET_ACCOUNTS}, MainActivity.REQUEST_CODE_ASK_PERMISSIONS);
        } else {
            isAllPermissionsGranted = true;
        }
    } else {
        isAllPermissionsGranted = true;
    }

}

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == REQUEST_CODE_ASK_PERMISSIONS) {
            if (grantResults.length > 0) {
                boolean isAllPermissionsGranted = true;
                for (int i = 0; i < grantResults.length; i++) {
                    if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
                        isAllPermissionsGranted = false;
                    }
                }

                if (isAllPermissionsGranted) {
                    this.isAllPermissionsGranted = true;
                } else {
                    android.widget.Toast.makeText(this, "Please, grand permissions", android.widget.Toast.LENGTH_LONG).show();
                    showPermissionsDialog();
                }
            }
        }
    }

Avez-vous des suggestions sur la façon de résoudre ce problème ? Merci d'avance !

EDIT

Ici est le rapport de bogue à Google. Nous attendons toujours la correction de Google.

EDIT 1

Ce problème a été corrigé !

0 votes

Avez-vous surchargé onRequestPermissionsResult ? ?

0 votes

Oui, bien sûr...je vais ajouter le code

0 votes

Je viens de mettre à jour le système d'exploitation, jusqu'à ce matin le même ensemble de code fonctionnait bien et après la mise à jour je ne peux pas cliquer sur le bouton "autoriser". Faites-moi savoir si vous avez trouvé une solution.

55voto

Javier Vieira Points 1368

EDIT : Il a été marqué comme un défaut dans la dernière version d'Android et il sera corrigé dans une prochaine version de l'OS. Rapport de bogue

EDIT 2 : File manager m'a envoyé un email disant qu'ils ont corrigé cette fonctionnalité dans leur application. Je n'ai plus essayé File Manager, mais si vous mettez à jour l'application, vous ne devriez plus avoir ce problème. Mais en fait, ce comportement peut provenir de n'importe quelle application qui fait des superpositions de manière incorrecte jusqu'à ce qu'Android corrige le problème.

J'ai enfin compris (du moins dans mon cas)... c'est le f****. Gestionnaire de fichiers Le service de l'application. Si son service est arrêté, les autorisations fonctionnent à nouveau.

https://play.google.com/store/apps/details?id=com.rhmsoft.fm

J'avais cette application avant la mise à jour de "MOB30M" et les autorisations d'exécution fonctionnaient sans problème (c'est mon travail quotidien de programmer cela) et j'ai utilisé le gestionnaire de fichiers pour mettre la version APK dans le téléphone et l'exécuter pour installer l'APK. Ce n'est donc pas une application que j'ai installée aujourd'hui.

Ce que je trouve affreux, c'est qu'une seule application peut faire planter tout le système de permission.

C'est un problème excessif.

Je comprends que le système de permission n'est pas planté, puisqu'une application pourrait être utilisée pour falsifier les dialogues, MAIS Android (Google) ne devrait-il pas alors vous dire que vous avez une application qui tourne en haut et que si vous voulez donner des permissions à l'application vous devriez désinstaller l'application XXXX ? Je veux dire pour le bien de l'expérience utilisateur.

Un utilisateur normal, penserait que son téléphone est cassé et renverrait probablement le téléphone à google ou à l'opérateur xD

Allez, soyons honnêtes, Android ne peut pas arranger ça ? Ce n'est pas comme si vous aviez besoin de votre téléphone rooté pour avoir ce comportement (mon téléphone n'est pas rooté). Si vous n'informez pas l'utilisateur de ce qui se passe, alors c'est comme si c'était cassé.

0 votes

Je l'ai fait et ça a marché, mais comme tu l'as dit, c'est vraiment terrible qu'une seule application puisse faire ça xD

1 votes

@JavierVieira Je viens d'essayer et ça marche ! Je vous remercie ! J'espère que Google réglera ce problème avant que mon application ne soit mise en ligne xD

0 votes

Il est probable qu'ils le feront bientôt et qu'ils arrêteront également de mettre à jour plus de personnes avec cette version... principalement parce que les applications Google sont également affectées ainsi que toutes les applications compilées avec le SDK 23.

2voto

Ujju Points 1340

Dans mon cas Clean Master Si l'iSwipe d'un client est à l'origine de ce problème, désactivez la fonction ISWIPE dans ses paramètres.

1voto

Er Kimmi Dhingra Points 121

C'est un problème lié à Android marshmallow 6.0.1. Selon le support Google, ils travaillent sur ce problème. https://code.google.com/p/Android/issues/detail?id=213120

0voto

jenny howard Points 1

J'étais sur le point de signaler le même problème mais ici il est déjà enregistré, je suis confronté à ce problème depuis 2 mois, aucune idée pourquoi mais le bouton "Autoriser" ne fonctionne pas dans mon téléphone NEXUS 6P aussi. Il semble que ce problème n'existe que dans la série Nexus.

@Google et l'équipe Android : S'il vous plaît, résolvez ce problème, c'est vraiment ennuyeux de voir combien de fois nous sommes confrontés à ce problème, je veux dire pour chaque application, on doit continuer à aller dans les paramètres pour la solution de contournement pour définir manuellement les autorisations.

C'est vraiment un bug stupide :/

-2voto

KimmyS Points 9

Désinstallé Gestionnaire de fichiers et je l'ai téléchargé à nouveau, le bouton "Autoriser" fonctionne à nouveau.

2 votes

Ce n'est pas une réponse valable... cela fonctionne parce que lorsque vous désinstallez le service s'arrête... si vous l'installez à nouveau, le service ne fonctionne pas jusqu'à ce que vous ouvriez à nouveau l'application... dès que vous l'ouvrez. Dès lors, le service de l'application se remet à fonctionner f***** le système d'autorisation est à nouveau activé. Il se peut aussi que ce ne soit pas à cause du gestionnaire de fichiers ...., mais de n'importe quelle application qui fait de la superposition. Ce problème a été officiellement signalé comme un défaut dans la dernière mise à jour d'Android et sera corrigé par l'équipe Android.

0 votes

Je suis d'accord avec @JavierVieira, la désinstallation ne peut pas être une solution car elle ne résout pas entièrement le problème, il faut attendre le prochain patch de sécurité de google.

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