由于考虑到安全问题,安卓6.0以后,有些权限是需要动态申请的:
if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_PHONE_STATE},1);
首先要判断是否获取过该权限避免重复获取。然后再申请,如果需要得到申请权限的结果:
这是运行结果的两种情况,所以我们只需要判断结果是-1还是0 就行
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 1:
if(grantResults[0] == 0)
//成功
else
//失败
}
}
注意,每一个onRequestPermissionsResult使用前提是requestPermissions被调用了。