鸿蒙摄像头调用,鸿蒙应用程序读取相册权限

华为手机的后置摄像头想要实现扫码功能,必须要开启后置摄像头的预览画面也就是拍摄画面,而后置摄像头的使用也需要开启相应的权限才行,比如手机相机的敏感类型权限ohos.permission.CAMERA 。
下面,我们一起在自己的APP项目中来实现相机权限-ohos.permission.CAMERA的获取和开启 。
一.打开项目中的配置文件config.json , 通过“reqPermissions”字段声明相机相关的权限 。

鸿蒙摄像头调用,鸿蒙应用程序读取相册权限

文章插图
二.在MainAbilitySlice类中,使用requestPermissionFromUser来动态申请相机的权限 。public class MainAbilitySlice extends AbilitySlice {public static final int MY_PERMISSIONS_REQUEST_CAMERA = 1039;@Overridepublic void onStart(intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);requestCameraPermission();}//1.获取相机权限public void requestCameraPermission(){if (verifySelfPermission("ohos.permission.CAMERA") != IBundleManager.PERMISSION_GRANTED) {// 应用未被授予权限if (canRequestPermission("ohos.permission.CAMERA")) {// 是否可以申请弹框授权(首次申请或者用户未选择禁止且不再提示)requestPermissionsFromUser(new String[] { "ohos.permission.CAMERA" } , MY_PERMISSIONS_REQUEST_CAMERA);} else {// 显示应用需要权限的理由 , 提示用户进入设置授权new ToastDialog(getContext()).setText("请进入手机系统【设置】中 , 重新开启应用的相机权限").show();}} else {// 权限已成功被授予new ToastDialog(getContext()).setText("已授权,可使用相机的拍摄功能").show();//相机预览界面//addQrLayout();}}}三.在MainAbility中,通过onRequestPermissionsFromUserResult回调函数来接收授予相机权限的结果 。public class MainAbility extends Ability {private static final int PERMISSION_REQUEST_CODE = MainAbilitySlice.MY_PERMISSIONS_REQUEST_CAMERA;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setMainRoute(MainAbilitySlice.class.getName());}//调用requestPermissionsFromUser后的权限申请应答@Overridepublic void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode){case PERMISSION_REQUEST_CODE: {if (grantResults.length > 0 && grantResults[0] == IBundleManager.PERMISSION_GRANTED){new ToastDialog(getContext()).setText("此应用已授权,可进行相机的拍摄").show();}else{new ToastDialog(getContext()).setText("权限被拒绝").show();}return;}}}}四.进行项目的真机测试 , 查看项目的APP是否有相关权限内容的提示,如果有相关提示框出现则表示手机的摄像头使用权限可以进行开通 。
鸿蒙摄像头调用,鸿蒙应用程序读取相册权限

文章插图
【鸿蒙摄像头调用,鸿蒙应用程序读取相册权限】如果APP在打开之后,出现上图所示的提示框,我们选择并点击“仅使用期间允许”按钮,即可真正开通手机相机功能的权限 。
结语:手机实现扫码的第一步需要开通相机功能相关的权限,比如ohos.permission.CAMERA权限 。而后置摄像头之所以能正常进行画面的拍摄 , 需要在APP初次安装时去启动并获取相机功能给予的权限,保证在后面进行拍摄时其画面不出现“黑屏” 。