En esta entrada vamos a ver cómo se determina en tiempo de ejecución qué versión está corriendo la app y veremos también un código que podemos utilizar para determinar si nuestra app tiene que comprobar los permisos a la antigua o a la nueva usanza.Para determinar que versión del SDK está ejecutando la app, podemos usar la siguiente sentencia:

int CurrentSDKVersion=Build.VERSION.SDK_INT;

Ahora vamos a ver una función que podemos usar para determinar si nuestra aplicación está corriendo en un SDK previo al API23 o no.

Esto es importante  a la hora de comprobar correctamente los permisos en nuestra aplicación, ya que en versiones anteriores al API23 los permisos se otorgaban por el usuario en el momento de la instalación y a partir del API23 éstsos son otorgados, bien la primera vez cuando se intenta realizar una acción o bien siempre que se intenta realizar la acción que requiera el permiso.

Obviamente el código que tenemos que programar para determinar cómo comprobar los permisos es diferente. Esta función nos puede ayudar a determinarlo y mantener más limpio nuestro código.

    private boolean IsOlderPermissionVersion(){
        boolean older=false;
        int CurrentSDKVersion=Build.VERSION.SDK_INT;
        int MarshmallowSDKVersion=Build.VERSION_CODES.M;
        if (CurrentSDKVersion<MarshmallowSDKVersion) older=true;
        return older;
    }

Como vemos devolverá true si la versión es anterior a la versión Marshmallow (API23).