You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo BarCodeScanner扫描同一条形码返回不同值的问题咨询

Expo BarCodeScanner扫描同一条码返回不同data值的问题

我使用Expo BarCodeScanner扫描条形码时,每次返回的data值都不相同。我认为条形码应对应唯一固定的编号,请问这是正常情况还是我的实现存在问题?

补充说明:我没有实体条形码,是通过电脑屏幕进行扫描的,这会不会是问题的诱因?

我的代码实现如下:

const handleBarCodeScanned = ({ type, data }) => {
    try {
      console.log(type);     //this returns 1024
      console.log(data);     //this value is different every time
      setData(data);
      setScanned(true);
      alert(`Bar code with type ${type} and data ${data} has been scanned!`);
    } catch (error) {
      alert(`we did not recognize the barcode.Please try again`);
      console.error("Unable to parse string: ", error);
    }
  };

<BarCodeScanner
        onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
        barCodeTypes={[BarCodeScanner.Constants.BarCodeType.code93]}
        style={[StyleSheet.absoluteFillObject, styles.minicontainer]}
      />
      {scanned && <Button title={"Tap to Scan Again"} onPress={Rescan} />}
    </View>

问题解答

  • 这种情况不正常,正常扫描同一有效条码应该返回固定的data值。
  • 你的代码实现本身没有明显逻辑问题,核心问题大概率出在屏幕扫描的干扰上:
    • 电脑屏幕的刷新率、摩尔纹、亮度不均,会导致相机捕捉的条码图像出现变形、噪点,扫描器无法准确识别条码内容,每次解析出错误的随机值。
    • 屏幕显示的条码可能本身清晰度不足,或者缩放比例不合适,进一步加剧识别误差。
  • 验证与解决建议:
    • 优先使用实体Code93条码打印出来扫描测试,确认是否返回固定值。
    • 如果必须用屏幕扫描,尽量调整屏幕亮度到适中,让条码完整占满相机取景框,避免倾斜,同时减少环境光对屏幕的反射干扰。

内容的提问来源于stack exchange,提问作者lui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:05:38