HarmonyOS Scan kit自定义扫码控件报错 ,错误码:1000500001

根据下面网站DEMO信息

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/scan-customscan-api-V5

使用了customScan中的原样代码,代码如下:

import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { scanBarcode, customScan } from '@kit.ScanKit';

@Entry
@Component
struct ScanQTCode {
  // 设置预览流高度,默认单位:vp
  @State cameraHeight: number = 640
  // 设置预览流宽度,默认单位:vp
  @State cameraWidth: number = 360
  private mXComponentController: XComponentController = new XComponentController();

  build() {
    Stack() {
      XComponent({
        id: 'componentId',
        type: 'surface',
        controller: this.mXComponentController
      })
        .onLoad(() => {
          hilog.info(0x0001, '[Scan Sample]', 'onLoad is called')
          // 获取XComponent的surfaceId
          let surfaceId: string = this.mXComponentController.getXComponentSurfaceId();
          hilog.info(0x0001, 'viewControl', `onLoad surfaceId: ${surfaceId}`);
          // 设置ViewControl相应字段
          let viewControl: customScan.ViewControl = {
            width: this.cameraWidth,
            height: this.cameraHeight,
            surfaceId: surfaceId
          };
          try {
            customScan.start(viewControl, (error: BusinessError, scanResult: Array<scanBarcode.ScanResult>) => {
              if (error) {
                hilog.error(0x0001, '[Scan Sample]', 'start failed , error: %{public}s', JSON.stringify(error))
                return;
              }
              hilog.info(0x0001, '[Scan Sample]', 'callback scan result: %{public}s', JSON.stringify(scanResult))
            });
          } catch (error) {
            hilog.error(0x0001, '[Scan Sample]', 'start failed , error: %{public}s', JSON.stringify(error))
          }
        })
          // 预览流宽、高,默认单位vp,支持px、lpx、vp
        .height(this.cameraHeight)
        .width(this.cameraWidth)
        .position({ x: 0, y: 0 })
    }
    .alignContent(Alignment.Bottom)
    .height('100%')
    .width('100%')
    .position({ x: 0, y: 0 })
  }
};
HarmonyOS
21h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

API参考里面给的是部分的代码不是整个端到端的流程。当前代码的问题是没有申请相机的权限。

可以参考自定义扫码指南查看

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/scan-customscan-V5

几个要点:

  1. module.json5 中添加camera的权限声明

2.拉起自定义扫码界面时需要动态申请相机的权限,等待用户授权

  1. 用户授权后在启动相机流进行扫码

4.获取扫码结果

附权限声明module.json5:

"requestPermissions":[
{
  "name" : "ohos.permission.CAMERA",
  "reason": "$string:reason",
  "usedScene": {
    "abilities": [
    "FormAbility"
    ,
    "when":"inuse"
  }
}
],
分享
微博
QQ
微信
回复
19h前
相关问题
HarmonyOS customScan.start报错1000500001
122浏览 • 1回复 待解决
HarmonyOS 自定义咨询
100浏览 • 1回复 待解决
HarmonyOS 如何自定义页面
65浏览 • 1回复 待解决
HarmonyOS 自定义的恢复态API
64浏览 • 1回复 待解决
自定义界面预览画面出现拉伸
1870浏览 • 1回复 待解决
Socket连接报错错误码88
1823浏览 • 1回复 待解决
Scan Kit无法识别多个
1742浏览 • 1回复 待解决
HarmonyOS上传app包报错错误码996
113浏览 • 1回复 待解决
HarmonyOS 错误码7400201
8浏览 • 1回复 待解决
TCPSocket on('close')错误码
483浏览 • 1回复 待解决
HarmonyOS 关于2300006错误码
97浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人