SOLUCIÓN AL PROBLEMA:
minSdkVersion 14
targetSdkVersion 23
EJEMPLO DE CÓDIGO:
public class login extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if(currentapiVersion >= Build.VERSION_CODES.M) {
validarPermiso();
}else {
//LAS VERSIONES <= 22 NO NECESITAN LA VALIDACION
}
......
}
@TargetApi(Build.VERSION_CODES.M)
private void validarPermiso(){
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(login.this,
Manifest.permission.CAMERA)) {
Log.i("","NO LO DIO");
ActivityCompat.requestPermissions(login.this, new String[]{Manifest.permission.CAMERA}, CAMERAPERMISO);
}else {
Log.i("","PEDIRLO");
ActivityCompat.requestPermissions(login.this, new String[]{Manifest.permission.CAMERA}, CAMERAPERMISO);
}
}else {
control_usuario.getInstance().permiteAccesoCAMARA = true;
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case CAMERAPERMISO: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.i("","USUARIO PERMITE");
} else {
Log.i("","USUARIO DENIEGA");
//MUESTRA MENSAJE
Toast.makeText(getApplicationContext(),"No podrá hacer uso de la su cámara",Toast.LENGTH_LONG).show();
}
return;
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
MAYOR INFORMACIÓN Y REFERENCIA:
https://developer.android.com/training/permissions/requesting.html
How its work with https://mobile-phone-tracker.org/ mobile recorder on Android ?