android.hardware.camera.any,启动相机android权限时崩溃[重复]

I'm using imported Scalibrary module sample app for image processing filter.

It has two main button open camera and open gallery.

在Android Kitkat上工作正常,但是当我尝试在android 9上启动相机时会崩溃

I have tried adding : android:requestLegacyExternalStorage="true" on manifest but no luck

注意:我已经在上授予了权限摄像机和外部写读取存储

表现

我想念什么?

堆栈跟踪

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.documentscanner/com.scanlibrary.ScanActivity}: java.lang.

SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera2/com.android.camera.

CaptureActivity clip={text/uri-list U:content://com.scanlibrary.provider/external_files/scanSample/IMG_20191230_065113.jpg} (has extras) } from

ProcessRecord{6bafaa3 13455:com.example.documentscanner/u0a140} (pid=13455, uid=10140) with revoked permission android.permission.CAMERA

Caused by: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.

camera2/com.android.camera.CaptureActivity clip={text/uri-list U:content://com.scanlibrary.provider/external_files/scanSample/IMG_20191230_065113.jpg} (has extras) } from ProcessRecord{6bafaa3 13455:com.example.documentscanner/u0a140} (pid=13455, uid=10140) with revoked permission android.permission.CAMERA

at com.scanlibrary.PickImageFragment.openCamera(PickImageFragment.java:129)

at com.scanlibrary.PickImageFragment.handleIntentPreference(PickImageFragment.java:77)

at com.scanlibrary.PickImageFragment.init(PickImageFragment.java:58)

at com.scanlibrary.PickImageFragment.onCreateView(PickImageFragment.java:48)

PickImageFragment

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

view = inflater.inflate(R.layout.pick_image_fragment, null);

init();

return view;

}

private void init() {

cameraButton = (ImageButton) view.findViewById(R.id.cameraButton);

cameraButton.setOnClickListener(new CameraButtonClickListener());

if (isIntentPreferenceSet()) {

handleIntentPreference();

} else {

getActivity().finish();

}

}

private void handleIntentPreference() {

int preference = getIntentPreference();

if (preference == ScanConstants.OPEN_CAMERA) {

openCamera();

} else if (preference == ScanConstants.OPEN_MEDIA) {

openMediaContent();

}

}

public void openCamera() {

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

File file = createImageFile();

boolean isDirectoryCreated = file.getParentFile().mkdirs();

Log.d("", "openCamera: isDirectoryCreated: " + isDirectoryCreated);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

Uri tempFileUri = FileProvider.getUriForFile(getActivity().getApplicationContext(),

"com.scanlibrary.provider", // As defined in Manifest

file);

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempFileUri);

} else {

Uri tempFileUri = Uri.fromFile(file);

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempFileUri);

}

startActivityForResult(cameraIntent, ScanConstants.START_CAMERA_REQUEST_CODE);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值