Je voudrais vérifier si une application particulière doit gérer les autorisations d'exécution Android Marshmallow en cours d'exécution ou non.Android: Vérifiez si les autorisations d'exécution doivent être demandées ou non
Est-ce que l'hypothèse suivante est correcte?
/**
* Checks whether runtime permissions must be handled or not.
*
* @param context Application context.
* @return Handle runtime permissions or not.
*/
public static boolean shouldCheckRuntimePermissions(Context context) {
return
isApplicationWithMarshmallowTargetSdkVersion(context) &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
/**
* Checks whether the app is compiled with targetSdkVersion Marshmallow or above.
*
* @param context Application context.
* @return Application targetSdkVersion above 23 or not.
*/
public static boolean isApplicationWithMarshmallowTargetSdkVersion(Context context) {
return
context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.M;
}
Voici le tableau que j'ai élaboré où, par exemple ont été nécessaires ACCESS_COARSE_LOCATION
autorisations pour demander à l'utilisateur avec les permissions d'exécution Android Guimauve.
====================
target SDK |<23| 23|
====================
|<23| X | X |
------------|
OS SDK |23 | X | V |
====================
Je sais l'existence de la bibliothèque de soutien helpers, mais je veux les éviter pour ce cas particulier.
Je pense que vous avez seulement besoin de vérifier la construction version sdk que la version cible indique que le sdk vous visiez en développement. –
@LuisMiguelSierra Je ne pense pas, si vous exécutez une application avec targetSDK 23 et OS SDK 22, vous n'avez pas besoin de demander des autorisations d'exécution.Au moins c'est ce que j'ai testé avec le dangereux COARSE_LOCATION. – GoRoS
Votre hypothèse semble bonne. Est-ce que ça fonctionne bien? –