web-dev-qa-db-fra.com

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

Sur les appareils qui ont installé la dernière mise à jour de Android Marshmallow - soit June2016 update, lorsque je demande des autorisations, le bouton AUTORISER ne fonctionne pas.

J'ai testé avec ces 2 appareils:

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

Nexus 7 (version Android 6.0.1, numéro de version - 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 AUTORISER.

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();
                }
            }
        }
    }

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

[~ # ~] modifier [~ # ~]

Ici est le rapport de bug à Google. Nous attendons toujours le correctif de Google.

EDIT 1

Ce problème a été corrigé!

39
hakobyanheghine

EDIT: Il a été marqué comme un défaut dans le dernier Android et il sera corrigé dans une future version de l'OS. Rapport de bogue

EDIT 2: Le gestionnaire de fichiers m'envoie un e-mail pour corriger cette fonctionnalité dans son application. Je n'ai plus essayé le Gestionnaire de fichiers, mais si vous mettez à jour l'application, cela ne devrait plus vous poser de problème. Mais, fondamentalement, ce comportement pourrait provenir de n'importe quelle application faisant une superposition de manière incorrecte jusqu'à ce que Android corrige le problème.

Je l'ai finalement (au moins dans mon cas) ... c'est le service de l'application f **** Gestionnaire de fichiers . 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 où je travaillais sans problème (c'est mon travail quotidien pour 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 finance terriblement, c'est qu'une application peut faire planter tout le système d'autorisation.

C'est et trop de problème

Je comprends que le système d'autorisation n'est pas en panne, car une application pourrait être utilisée pour falsifier les boîtes de dialogue, MAIS ne devrait pas alors Android (Google) vous dire que vous avez une application qui fonctionne en haut et que si vous souhaitez donner des autorisations à l'application, vous devez désinstaller l'application XXXX? Je veux dire pour le plaisir 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 au transporteur xD

Allez, soyons honnêtes, je ne peux pas Android améliorer cela? Ce n'est pas comme si vous aviez besoin de votre téléphone enraciné pour avoir ce comportement (mon téléphone n'est pas enraciné). Si vous n'informez pas l'utilisateur de ce qui se passe sur, alors est comme est cassé

55
Javier Vieira

Dans mon cas Clean Master iSwipe était à l'origine de ce problème, désactivez la fonction ISWIPE dans leurs paramètres

2
Ujju

C'est Android Marshmallow 6.0.1 issue. Selon l'assistance Google, ils travaillent sur ce problème https://code.google.com/p/Android/issues/detail? id = 21312

1
Kimmi Dhingra

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

@Google et Android: veuillez corriger cela, c'est vraiment ennuyeux de savoir combien de fois nous sommes confrontés à ce problème, je veux dire pour chaque application, il faut continuer à définir manuellement la solution de contournement pour définition des autorisations.

C'est vraiment un bug idiot: /

0
jenny howard