android - studio - ¿Está disponible para establecer checkSelfPermission en un SDK mínimo<23?
google api android developer (5)
En caso de que no desee utilizar AppCompatActivity, la forma se describe aquí https://codemammoth.blogspot.gr/2016/06/how-to-invoke-checkselfpermission.html
Tienes que invocar los métodos :)
Puede verificar la versión de compilación if(Build.Version.SDK_INT >= Build.VERSION_CODES.MARSHMALLOW)
. Y luego manejar los permisos de malvavisco allí, y manejar las otras versiones de lo contrario.
Solo revisa tu versión de Android antes de obtener el permiso de verificación:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// public void requestPermissions(@NonNull String[] permissions, int requestCode)
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for Activity#requestPermissions for more details.
return;
}
}else{
//Do Your Stuff
}
checkSelfPermission está disponible arriba del SDK 23.
Podemos comprobar si el permiso está disponible o no usar el gestor de paquetes.
public static Boolean checkpermissions(Activity activity) {
PackageManager mPackageManager = activity.getPackageManager();
int hasPermStorage = mPackageManager.checkPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, activity.getPackageName());
if (hasPermStorage != PackageManager.PERMISSION_GRANTED) {
// do stuff
//Toast.makeText(getApplicationContext(), "No permission", Toast.LENGTH_LONG).show();
return false;
} else if (hasPermStorage == PackageManager.PERMISSION_GRANTED) {
// do stuff
//Toast.makeText(getApplicationContext(), "Has permission", Toast.LENGTH_LONG).show();
return true;
}else
return false;
}
Utilice ContextCompat.checkSelfPermission()
, ActivityCompat.requestPermissions()
y ActivityCompat.shouldShowPermissionRequestRationale()
, de la biblioteca support-v4
(v23 o superior). Estos son compatibles con versiones anteriores; si está ejecutando una versión anterior de Android, "harán lo correcto" (por ejemplo, devolverán PackageManager.PERMISSION_GRANTED
para ContextCompat.checkSelfPermission()
).