SocketMobile Scanner:如何检测条形码或二维码被扫描?

SocketMobile Scanner : How to detect barcode or QR get scanned?

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

在扫描下面的条形码或二维码时,委托人被称为:

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

这里,我怎么知道扫描是条码还是二维码?

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

可能吗?

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

  • getSymbologyID - returns 一个整数
  • getSymbologyName - returns 一个字符串

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

- (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
    }
}

如果 "barcode" 是指任何线性条码(a.k.a 一维条码),则需要在代码中指定所有不同的 types of linear barcodes