web-dev-qa-db-fra.com

L'application Android ne demande pas d'autorisations lors de l'installation

Je travaille dans le département informatique de mon université et nous travaillons sur une application qui installe la configuration correcte pour le eduroam WiFi (vous en avez peut-être entendu parler).

Cependant, je ne parviens pas à l'exécuter sur mon propre LG G4 avec Android 6.0. Lors de l'installation du fichier * .apk compilé, aucune autorisation n'est demandée, bien qu'elles soient définies dans le fichier AndroidManifest.xml. Cela fonctionnait sur toutes les versions précédentes d'Android.

Est-il obligatoire de demander des autorisations au moment de l'exécution? 

18
der_eismann

Si votre version cible du SDK est 23, vous devez demander des autorisations "dangereuses" au moment de l'exécution.

Si tel est le cas, vous devriez être en mesure de constater qu'aucune autorisation n'a été accordée si vous accédez à Settings > Apps > "Your app" > Permissions.

Si vous ne voulez pas encore implémenter le nouveau système, vous pouvez réduire votre version de sdk cible à 22 pour obtenir l'ancien système de permission. Vous pouvez quand même compiler avec la version 23 de sdk.

Voir la documentation pour plus d'informations.

37
StuStirling

si vous souhaitez demander des autorisations au moment de l'exécution, vous devez écrire une demande spéciale dans votre application. Quelque chose comme ça:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        createPermissions();
}
public void createPermissions(){
    String permission = Manifest.permission.READ_SMS;
    if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED){    
        if(!ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permission)){
              requestPermissions(new String[]{permission}),
                        SMS_PERMISSION);
        }
    }
}
2
Vanya Sakharovskiy