Vamos a ver cómo saber, en tiempo de ejecución, si tenemos concedido un determinado permiso. Esto nos ayudará a que, si no lo tenemos ya, la aplicación no termine con error, sino que podamos avisar al usuario. Para ello podemos usar la siguiente función:
private boolean ChekPermission(String permission){
//Este método comprueba si el persmiso que se pasa está declarado o disponemos de el
//Si el permiso está granted (está declarado con uses-permission) devolverá true.
int result = this.checkCallingOrSelfPermission(permission);
return result==PackageManager.PERMISSION_GRANTED;
}
La funcón checkCallingOrSelfPermission(permission) devuelve la constante PERMISSION_GRANTED o PERMISSION_DENIED a la que podemos también acceder desde el PackageManager.