往期知识点整理
介绍
本示例介绍使用自定义界面扫码能力在折叠屏设备中实现折叠态切换适配。自定义界面扫码使用系统能力customScan,其提供相机流的初始化、启动扫码、识别、停止扫码、释放相机流资源等能力。折叠屏折叠状态通过监听display的foldStatusChange事件实现。
效果图预览
使用说明
- 用户授权相机扫码。
- 对准二维码即可识别展示,支持多二维码识别。
- 支持打开相机闪光灯。
- 折叠态不同,相机流的尺寸也不同,因此折叠态变更时,扫码服务会重新初始化。
实现思路
- 相机权限需要用户授权。
// 向用户申请授权
let context = getContext() as common.UIAbilityContext;
let atManager = abilityAccessCtrl.createAtManager();
let grantStatusArr = await atManager.requestPermissionsFromUser(context, [ 'ohos.permission.CAMERA' ]);
const grantStatus = grantStatusArr.authResults[0];
- 依赖XComponent展示相机流内容,在加载完相机流后启动相机扫码服务。
// TODO:知识点:相机流显示依赖XComponent
XComponent({
id: CommonConstants.CAMERA_XCOMPONENT_ID,
type: CommonConstants.CAMERA_XCOMPONENT_TYPE,</