ContextCompat
是公共类从android.support.v4库派生,它不是涉及到AppCompatActivity。有关Android版本23检查权限和了,你会做这样的事情:
private void getPermission(String permission, Integer requestCode) {
if (ContextCompat.checkSelfPermission(test_activity.this, permission) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(test_activity.this, new String[]{permission}, requestCode);
} else {
Toast.makeText(this, "" + permission + " is already granted.", Toast.LENGTH_SHORT).show();
}
}
比调用onCreate
方法:
getPermission(android.Manifest.permission.ACCESS_FINE_LOCATION, requestCode);
比覆盖onRequestPermissionsResult
和处理结果:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(ActivityCompat.checkSelfPermission(this, permissions[0]) == PackageManager.PERMISSION_GRANTED){
switch (requestCode) {
//Location
case 1:
// do something
break;
}
else
{
Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
}
}
'Activity' has'requestPermissions' method ... – Selvin