1、问题
① SecurityException
② FileUriExposedException
2、原因及方法
(1):SecurityException无法调起相机
原因: 权限问题
方法:android6.0以上,需要动态获取camera权限,否则无法调起系统相机。【注意,另外的读写权限不可忽略,也需要动态获取】
private static final int REQUEST_PERMISSION = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasWritePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
int hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
int hasCameraPermission = checkSelfPermission(Manifest.permission.CAMERA);
List<String> permissions = new ArrayList<String>();
if (hasWritePermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (hasReadPermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
if(hasCameraPermission != PackageManager.PERMISSION_GRANTED){//拍照权限
permissions.add(Manifest.permission.CAMERA);
}
if (!permissions.isEmpty()) {