We see this question quite often. Here are some experiences how to influence scanning speed.
- If you need to scan only a certain barcode type/symbology then enable only recognizer responsible for scanning certain barcode type. Check android documentation for more information.
- On Samsung devices scanning from a larger distance can increase the speed and accuracy of scanning. This is very subjective and relates to the fact that Samsung devices cameras do not have very good auto-focus on distances shorter than 10 cm (4”). You can optimize camera for near object scanning by setting Pdf417ScanActivity.EXTRAS_OPTIMIZE_CAMERA_FOR_NEAR_SCANNING intent extra to true or even better if creating custom UI, calling method setOptimizeCameraForNearScan(true) of recognizer view or setting higher camera zoom level with setZoomLevel.
- Using high-end devices with faster processors of course can result in faster scanning. I'm sure you knew this obvious one ;)
- Sometimes on high-resolution Apple devices, lowering the resolution can increase scanning speed.
- If your barcodes are always of black color on white background then you can turn InverseScanning option off for faster scanning. If you have white barcodes on black colors than this option can't be turned off.
- Turning on NullQuietZoneAllowed parameter will increase scanning a wider range of barcodes with the price of slower scanning. Setting to false will make the scanning fast but with less scanning accuracy. This option is intended for use cases where barcode edges are compromised with text (e.g. South African car permits).
- If you have a large PDF417 barcode with many columns and your device camera aspect ratio is closer to 1:1 than to 16:9 and CameraAspectMode is set to ASPECT_FILL, then a lot of the camera resolution is lost, which is essential for scanning barcode with lots of columns. If you are using Custom UI then pass an additional extra parameter via intent: intent.putExtra(Pdf417ScanActivity.EXTRAS_CAMERA_ASPECT_MODE, (Parcelable)CameraAspectMode.ASPECT_FIT);