0

我在 iOS 应用程序的 SPP(应用程序模式)中使用 SocketMobile 扫描仪 7Xi。我已经集成了scanapisdk SDK。

在扫描代表下方的条形码或二维码时,调用:

- (void) onDecodedDataResult:(long)result device:(DeviceInfo *)device decodedData:(ISktScanDecodedData*)decodedData { NSString * scannedText = [NSString stringWithUTF8String:(const char *)[decodedData getData]]; }

在这里,我如何知道扫描是否发生在 Barcode 或 QR 上?

我想检测是否扫描了条形码或二维码。

可能吗 ?

4

1 回答 1

1

ISktScanDecodedData 有两种方法可用于确定条形码类型

  • getSymbologyID- 返回一个整数
  • getSymbologyName- 返回一个字符串

我建议使用第一个,因为名称可能会更改。

- (void) onDecodedDataResult:(long)result device:(DeviceInfo *)device decodedData:(ISktScanDecodedData*)decodedData
{
    NSString * scannedText = [NSString stringWithUTF8String:(const char *)[decodedData getData]];
    int symbologyId = [decodedData getSymbologyID];

    if (symbologyId == ISktScanSymbology.id.kSktScanSymbologyQRCode) {
        // do something
    } else if (symbologyId == /* INSERT "BARCODE" SYMBOLOGY ID HERE */ ) {
        // do something else
    }
}

如果“条码”是指任何线性条码(又名一维条码),则需要在代码中指定所有不同类型的线性条码

于 2017-06-21T14:12:47.080 回答