android6.0后就需要手动获取权限。主要有以下步骤:
1、在menifests文件加入相应权限,如:
<!-- 获取照相机拍照权限 -->
<uses-permission android:name="android.permission.CAMERA"/>
2、检查是否已经获取到权限,主要针对android6.0及以上
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
// 没有照相机权限,去请求系统获取权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_OK);
}else{
// 已经有相机权限
}
3、得到系统权限返回
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case CAMERA_OK:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 有权限
} else {
// 没有权限
Toast.makeText(ScanningActivity.this, "您没有开启相机权限", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
完毕!