From 289875f44d14d61acd74e1f93cb8bee24f004258 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 06 十二月 2022 17:13:18 +0800 Subject: [PATCH] 代码更新 --- AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 47 insertions(+), 4 deletions(-) diff --git a/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java b/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java index 33992b1..25e2f0b 100644 --- a/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java +++ b/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java @@ -102,17 +102,19 @@ } //寮�鍚坊鍔犻〉闈� activity.startActivity(new Intent(activity.getApplication(), DeviceAddActivity.class)); + HdlToLcUtils.getInstance().requestCameraPermissions(); } @Subscribe(threadMode = ThreadMode.MAIN) public void onGetMessage(String obj) { - if(obj.equals("backXamarin")){ - iAddCamera.back(); - - if(EventBus.getDefault().isRegistered(this)){ + if (obj.equals("backXamarin")) { + if (EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().unregister(this); } + + if (iAddCamera != null) + iAddCamera.back(); } } @@ -172,6 +174,47 @@ }); } + public boolean checkCameraPermissions(){ + boolean isGranted = ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; + return isGranted; + } + + /** + * 璇锋眰鎽勫儚澶村叏涓� + */ + public void requestCameraPermissions(){ + boolean isMinSDKM = Build.VERSION.SDK_INT < 23; + boolean isGranted = ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; + if (isMinSDKM || isGranted) { + return; + } + requestRecordCameraPermission(); + } + + + private void requestRecordCameraPermission() { + if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA) + || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) + || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.READ_EXTERNAL_STORAGE)) { + ActivityCompat.requestPermissions(activity, + new String[]{ + Manifest.permission.CAMERA, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE}, + 1); + } else { + ActivityCompat.requestPermissions(activity, + new String[]{ + Manifest.permission.CAMERA, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE}, + 1); + } + } /** * 璇锋眰瀵硅鏉冮檺 -- Gitblit v1.8.0