我正在 iOS 6 ,
中开发BarCode阅读器应用程序我正在使用ZBar sdk
,我使用此Tutorial..开发了应用
当我扫描任何条形码时,它只扫描UPC
格式的产品,但它不扫描任何其他格式的产品,如EAN_13
或Code_128
等。
这是我的代码段,
- (IBAction) scanButtonTapped
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
[self presentViewController:reader animated:YES completion:nil];
}
- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
break;
NSLog(@"symbol.data=%@",symbol.data);
[reader dismissViewControllerAnimated:YES completion:nil];
}
如何扫描所有类型的产品?任何想法?
答案 0 :(得分:5)
ZBar解码器默认只启用EAN-13
和
UPC-A符号系统是EAN-13的子集,以前导0开头......您可以选择通过明确启用UPC-A来接收12位数结果。
听起来好像启用了EAN 13。要启用Code 128,请在禁用Interleaved 2 of 5(I25)
后放置以下代码段[scanner setSymbology: ZBAR_CODE128
config: ZBAR_CFG_ENABLE
to: 1];
如果您想严格控制启用和禁用的内容,请禁用所有符号系统并有选择地启用您想要的符号
// Disable all symbologies
[scanner setSymbology: 0
config: ZBAR_CFG_ENABLE
to: 0];
// Enable EAN 13
[scanner setSymbology: ZBAR_EAN13
config: ZBAR_CFG_ENABLE
to: 1];
// Enable UPC-A
[scanner setSymbology: ZBAR_UPCA
config: ZBAR_CFG_ENABLE
to: 1];
// Enable Code 128
[scanner setSymbology: ZBAR_CODE128
config: ZBAR_CFG_ENABLE
to: 1]