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