Je ne suis pas sûr de bien comprendre cela. Donc, pour la version < = 21 API, nous pouvons simplement utiliser AndroidManifest.xml
pour demander des autorisations, mais Lollipop et les API supérieures, nous avons la fonctionnalité Requesting permission on runtime. Donc, je l'utilise avec ce code simpe:Les autorisations sont accordées par défaut
if (Build.VERSION.SDK_INT >= 23) {
mPermissionsToBeAsked.clear();
for (String permission : AudioRecordingThread.PERMISSIONS_NEEDED) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
mPermissionsToBeAsked.add(permission);
}
} ....
Ensuite, si cette liste est pas vide je les demande:
if (mPermissionsToBeAsked.size() > 0) {
requestPermissions(mPermissionsToBeAsked.toArray(new String[0]), AUDIO_PERMISSIONS_REQUEST_CODE);
}
Mais, pour une raison quelconque, sur les appareils, par exemple , comme Samsung Galaxy S7 avec Android 6.0.1, toutes les autorisations soulignées par défaut lorsque l'application est installée. Donc, je veux savoir pourquoi, MAIS, il y a un plus grand sujet, quand je vais à mon application dans le Gestionnaire d'applications et manuellement en supprimant la permission de microphone, dans l'application checkSelfPermission(permission)
est toujours retourné GRANTED. Ainsi, les questions suivantes:
- Pourquoi appareils avec le niveau de l'API Lollipop et plus toutes les autorisations sont accordées par défaut encore et code ci-dessus ne rien ajouter dans
mPersmissionToBeAsked
? - Pourquoi si je supprime manuellement l'autorisation avec le titre MICROPHONE dans le gestionnaire d'application
checkSelfPermission(android.permission.RECORD_AUDIO)
renvoie toujours GRANTED?