This comprehensive guide covers all aspects of configuring the AI MultiBarcode Capture Android application for optimal performance in various deployment scenarios.
The AI MultiBarcode Capture app provides dual-mode operation:
- File-based Mode: Stores barcode data locally for offline operation
- HTTP(s) Post Mode: Real-time data transmission to web management system
- 📱 QR Code Endpoint Setup: Automatically configure HTTP endpoint by scanning a QR code from your WMS
- ⚙️ Manual Configuration: Traditional manual endpoint and authentication setup
- 🔧 Advanced Settings: Camera resolution, processing modes, and barcode symbologies
- Launch the AI MultiBarcode Capture app
- Tap the Settings (gear) icon in the top-right corner
- Configure options based on your deployment requirements
The Capture Trigger Mode setting allows you to customize when barcode capture occurs during the scan button press cycle.
On Scan Press (Default)
Settings → Capture Trigger Mode → On Scan Press
Behavior: Captures barcodes immediately when the scan button is pressed down.
Use Cases:
- Rapid scanning workflows requiring immediate feedback
- High-volume scanning environments
- Applications where speed is prioritized over precision
- Quick batch processing scenarios
On Scan Release
Settings → Capture Trigger Mode → On Scan Release
Behavior: Captures barcodes when the scan button is released (on key up).
Use Cases:
- Scenarios requiring precise aiming before capture confirmation
- Applications where users need time to steady their aim
- Workflows where deliberate capture timing is important
- Quality control processes requiring careful positioning
- Default Setting: On Scan Press is the default mode for maximum responsiveness
- Persistent Setting: Your selection is saved and automatically restored when the app resumes
- Managed Configuration: Enterprise administrators can remotely configure this setting via EMM/MDM systems
- Real-Time Updates: Configuration changes through managed configuration are applied immediately without app restart
- Hardware Button Support: Works with both physical scan buttons (R1 button and dedicated scan button)
For enterprise managed configuration:
<!-- In app_restrictions.xml -->
<restriction
android:key="capture_trigger_mode"
android:title="Capture Trigger Mode"
android:restrictionType="choice"
android:defaultValue="press"
android:entries="@array/capture_trigger_mode_names"
android:entryValues="@array/capture_trigger_mode_values" />Available values:
press- Capture on scan button pressrelease- Capture on scan button release
Settings → Processing Mode → File-based Processing
Use Cases:
- Offline environments without network connectivity
- High-security environments where network transmission is restricted
- Batch processing workflows
- Remote locations with intermittent connectivity
Configuration:
- Prefix: Configure the filename prefix for exported files (default: "MySession_")
- File Type: Choose export format from available options:
- Text File (.txt): Plain text format for simple data export
- CSV File (.csv): Comma-separated values for spreadsheet compatibility
- Excel File (.xlsx): Microsoft Excel format for advanced data analysis
- Data stored in device internal storage
- Export functionality available via "Browser" button
- Files can be transferred manually via USB or shared wirelessly
File Naming Convention:
Format: [Prefix]_YYYYMMDD_HHMMSS.[extension]
Examples:
- MySession_20240315_143022.txt
- Inventory_20240315_143022.csv
- Warehouse_20240315_143022.xlsx
Settings → Processing Mode → HTTP(s) Post
Required Configuration:
- HTTP(s) Endpoint: Complete URL to your web service
- Network Security: Configure SSL/TLS settings
HTTP(s) Endpoint: http://192.168.1.100:3500/api/barcodes.php
Authentication: Disabled
HTTP(s) Endpoint: https://barcode-api.company.com/api/barcodes.php
SSL Certificate Validation: Enabled
The Android app supports automatic endpoint configuration via QR code scanning, providing a convenient way to connect the mobile app to your WMS (Web Management System).
Step 1: Generate QR Code from WMS
- Open the WMS simulator web interface in a browser
- Open the Settings (gear icon on the top right of the screen)
- Navigate to the Endpoint Configuration
- Click on the QR Code button or icon
- The system will display a QR code containing the endpoint URL
Step 2: Scan QR Code with Android App
- Launch the AI MultiBarcode Capture app on your Android device
- Tap the Settings (gear) icon to open app settings
- Use the Zebra Imager to scan the QR Code
- A toast message will confirm: "Endpoint updated from QR code"
- The HTTP(s) Endpoint field will be automatically populated
The QR code must contain data in the following format:
AIMultiBarcodeEndpoint:http://192.168.1.100:3500/api/barcodes.php
or
AIMultiBarcodeEndpoint:https://barcode-api.company.com/api/barcodes.php
- Zero-typing: Eliminates manual URL entry errors
- Quick Setup: Instant connection to WMS
- Accuracy: Prevents typos in complex URLs
- User-friendly: No technical knowledge required
- Scalable: Easy deployment across multiple devices
- QR codes should only be displayed on trusted networks
- Consider using HTTPS endpoints for production environments
- Validate the endpoint URL before saving settings
- Monitor for unauthorized QR code scanning attempts
On Windows:
ipconfigLook for your IPv4 address (e.g., 192.168.1.100)
On Linux/macOS:
ip addr show
# or
ifconfig# Find Docker network gateway
docker network inspect webinterface_default
# Use gateway IP as endpoint
http://172.18.0.1:3500/api/barcodes.phpFor Android emulator development:
HTTP(s) Endpoint: http://10.0.2.2:3500/api/barcodes.php
Note: 10.0.2.2 is the special IP that Android emulator uses to access the host machine.
For development environments using HTTP (not HTTPS), the app includes network security configuration to allow cleartext traffic:
<!-- Automatically configured in network_security_config.xml -->
<network-security-config>
<!-- Allow cleartext traffic globally for development/testing -->
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>For production deployments:
- Use valid SSL certificates
- Enable certificate validation
- Configure proper domain names
- Test SSL connectivity before deployment
The AI MultiBarcode Capture app includes a powerful filtering feature that allows you to capture only barcodes that match specific patterns using regular expressions. This feature helps focus on relevant data and eliminates unwanted barcode captures.
When Regular Expression Filtering is enabled, the application will:
- Scan and detect all barcodes as usual
- Apply the regex pattern to each barcode's data
- Only capture barcodes that match the pattern
- Ignore barcodes that don't match the filter
-
Access Settings
Settings → Filtering → Enable Filtering (checkbox) -
Enable Filtering
- Check the "Enable Filtering" checkbox
- This activates the filtering system
-
Set Regular Expression Pattern
- Enter your regex pattern in the "Regular Expression" text field
- The text field is only enabled when filtering is activated
📚 Complete Regex Pattern Collection - Comprehensive guide with hundreds of regex patterns for web URLs, device identifiers, government IDs, product codes, and industry standards.
^[0-9]+$Use Case: Only capture barcodes containing numbers (UPC, EAN, etc.)
^PRD[0-9]{6}$Use Case: Capture product codes starting with "PRD" followed by 6 digits
^https://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/.*)?$Use Case: Only capture HTTPS URLs from QR codes
^SN[A-Z0-9]{8}$Use Case: Capture serial numbers starting with "SN" followed by 8 alphanumeric characters
^LOT[0-9]{4}-[0-9]{2}$Use Case: Capture lot numbers in format "LOT1234-56"
^[A-Z]{2}[0-9]{4}[A-Z]{2}$Use Case: Capture codes like "AB1234CD"
- Case Sensitivity: Regular expressions are case-sensitive by default
- Error Handling: Invalid regex patterns are logged but won't crash the app
- Performance: Complex regex patterns may slightly impact scanning speed
- Fallback Behavior: If regex is empty, all barcodes are allowed through
- Real-time Filtering: Filtering is applied during live scanning
- Test Patterns: Verify your regex with sample data before deployment
- Keep It Simple: Use the simplest pattern that meets your needs
- Document Patterns: Record the purpose of complex regex patterns
- Performance Considerations: Avoid overly complex patterns for high-volume scanning
- Backup Strategy: Always have a way to disable filtering if needed
- Verify regex syntax using online regex testers
- Check for special characters that need escaping
- Ensure pattern matches the exact barcode format
- Simplify complex regex patterns
- Consider using character classes instead of long alternations
- Test with actual scanning volume
- Check if filtering is enabled when not intended
- Verify pattern matches expected barcode format
- Temporarily disable filtering to test barcode detection
The AI MultiBarcode Capture app supports a comprehensive range of barcode symbologies that can be individually enabled or disabled based on your specific requirements. The application supports 46 different barcode symbologies organized into several categories.
These are commonly used for retail and consumer products.
Two-dimensional codes that can store large amounts of data in a compact space.
Traditional single-dimension barcodes commonly used in various industries.
Specialized codes used by postal services worldwide.
Industry-standard codes for global supply chain management.
Additional symbologies for specific industry applications.
| Symbology | Default Setting | Category |
|---|---|---|
| EAN 8 | ✅ Enabled | EAN/UPC |
| EAN 13 | ✅ Enabled | EAN/UPC |
| UPC A | ✅ Enabled | EAN/UPC |
| UPC E | ✅ Enabled | EAN/UPC |
| AZTEC | ✅ Enabled | 2D Matrix |
| CODABAR | ✅ Enabled | Linear 1D |
| CODE128 | ✅ Enabled | Linear 1D |
| CODE39 | ✅ Enabled | Linear 1D |
| I2OF5 | ❌ Disabled | Linear 1D |
| GS1 DATABAR | ✅ Enabled | GS1 Standards |
| DATAMATRIX | ✅ Enabled | 2D Matrix |
| GS1 DATABAR EXPANDED | ✅ Enabled | GS1 Standards |
| MAILMARK | ✅ Enabled | Postal |
| MAXICODE | ✅ Enabled | 2D Matrix |
| PDF417 | ✅ Enabled | 2D Matrix |
| QRCODE | ✅ Enabled | 2D Matrix |
| DOTCODE | ❌ Disabled | 2D Matrix |
| GRID MATRIX | ❌ Disabled | 2D Matrix |
| GS1 DATAMATRIX | ❌ Disabled | GS1 Standards |
| GS1 QRCODE | ❌ Disabled | GS1 Standards |
| MICROQR | ❌ Disabled | 2D Matrix |
| MICROPDF | ❌ Disabled | 2D Matrix |
| USPOSTNET | ❌ Disabled | Postal |
| USPLANET | ❌ Disabled | Postal |
| UK POSTAL | ❌ Disabled | Postal |
| JAPANESE POSTAL | ❌ Disabled | Postal |
| AUSTRALIAN POSTAL | ❌ Disabled | Postal |
| CANADIAN POSTAL | ❌ Disabled | Postal |
| DUTCH POSTAL | ❌ Disabled | Postal |
| US4STATE | ❌ Disabled | Postal |
| US4STATE FICS | ❌ Disabled | Postal |
| MSI | ❌ Disabled | Linear 1D |
| CODE93 | ❌ Disabled | Linear 1D |
| TRIOPTIC39 | ❌ Disabled | Linear 1D |
| D2OF5 | ❌ Disabled | Linear 1D |
| CHINESE 2OF5 | ❌ Disabled | Linear 1D |
| KOREAN 3OF5 | ❌ Disabled | Linear 1D |
| CODE11 | ❌ Disabled | Linear 1D |
| TLC39 | ❌ Disabled | Linear 1D |
| HANXIN | ❌ Disabled | 2D Matrix |
| MATRIX 2OF5 | ❌ Disabled | Linear 1D |
| UPCE1 | ❌ Disabled | EAN/UPC |
| GS1 DATABAR LIM | ❌ Disabled | GS1 Standards |
| FINNISH POSTAL 4S | ❌ Disabled | Postal |
| COMPOSITE AB | ❌ Disabled | Composite |
| COMPOSITE C | ❌ Disabled | Composite |
- Default Enabled (16 symbologies): The most commonly used barcode types across retail, logistics, and general applications
- Default Disabled (30 symbologies): Specialized codes for specific industries or less common applications
- Performance Impact: Enabling fewer symbologies can improve detection speed and accuracy
- Regional Considerations: Some postal codes are specific to certain countries/regions
- Enable only needed symbologies for optimal performance
- Retail environments: Keep EAN/UPC codes enabled
- Logistics/Supply Chain: Enable GS1 standards and common 2D codes
- Postal applications: Enable relevant postal codes for your region
- Manufacturing: Consider enabling Code 128, Code 39, and Data Matrix
Description: Model input size is the resolution your image is resized to before AI analysis. Smaller sizes are faster and use less memory, while larger sizes can help detect smaller or more distant barcodes—but also uses more processing power and memory. Choose the input size to balance speed and accuracy for your needs.
Available Options:
- Small (640x640): Fastest processing, lowest memory usage, suitable for large or nearby barcodes
- Medium (1280x1280): Balanced performance and accuracy for general use cases
- Large (1600x1600): Best accuracy for small or distant barcodes, higher processing power required
Note: Model Input Size can be customized in increments of 32 using the SDK. The options above represent standard sizes.
Description: Camera resolution is the number of pixels in your photo (e.g., 1MP = 1280x720). Higher resolution captures more detail for small or distant text but uses more power and memory. Benefits are limited if the model input size is low.
Available Options:
- 1MP (1280 x 720): Large or close-up barcodes - Lower power consumption
- 2MP (1920 x 1080): General barcodes - Recommended for most use cases
- 4MP (2688 x 1512): Dense, faint, or small barcodes - Higher detail capture
- 8MP (3840 x 2160): Tiny, distant, or low-contrast barcodes - Maximum detail
Description: This setting chooses which chip in your device runs AI tasks, affecting speed and battery life. Not all devices have a DSP.
Available Options:
- DSP (Digital Signal Processor): Best Choice - Optimal performance and power efficiency
- GPU (Graphics Processing Unit): For trial use if DSP not available - Good performance
- CPU (Central Processing Unit): For trial use if DSP and GPU are not available - Fallback option
High Performance (Close-range, good lighting):
- Model Input Size: Small (640x640)
- Camera Resolution: 1MP or 2MP
- Inference Type: DSP
Balanced Performance (General use):
- Model Input Size: Medium (1280x1280)
- Camera Resolution: 2MP
- Inference Type: DSP
Maximum Accuracy (Small/distant barcodes):
- Model Input Size: Large (1600x1600)
- Camera Resolution: 4MP or 8MP
- Inference Type: DSP
Battery Conservation:
- Model Input Size: Small (640x640)
- Camera Resolution: 1MP
- Inference Type: DSP (if available)
The Optimizations section provides settings for performance monitoring and debugging control.
Description: Shows a real-time overlay on the camera preview displaying performance metrics for barcode analysis.
Location:
Settings → Advanced → Optimizations → Display Analysis Per Second
Display Format:
12 APS
45 ms
Where:
- APS (Analysis Per Second): Number of complete barcode analyses performed per second
- ms (Milliseconds): Average processing time per analysis (rolling average over 20 samples)
Use Cases:
- Performance tuning and optimization
- Comparing different device capabilities
- Troubleshooting slow scanning performance
- Validating configuration changes impact
Configuration Notes:
- Default Setting: Disabled (off)
- Overlay Position: Top-center of camera preview
- Visual Style: Semi-transparent background with white outline
- Rolling Average: Processing time calculated as average over last 20 analyses for stability
Managed Configuration:
<!-- In advanced_settings bundle -->
<restriction
android:key="display_analysis_per_second"
android:title="Display Analysis Per Second"
android:restrictionType="bool"
android:defaultValue="false" />Description: Controls application logging output. When disabled, only critical error reporting (feedback reporting) continues to function.
Location:
Settings → Advanced → Optimizations → Logging Enabled
Behavior:
- Enabled: All log levels (verbose, debug, info, warning, error) output to logcat
- Disabled: No logging output except for feedback/error reporting to EMM systems
Use Cases:
- Production Deployments: Disable logging to reduce overhead and prevent sensitive data exposure
- Development/Debugging: Enable logging for troubleshooting
- Performance Optimization: Disable logging to minimize processing overhead
- Security Compliance: Disable logging to prevent potential data leakage in logs
Configuration Notes:
- Default Setting: Disabled (off) for optimal production performance
- Feedback Reporting: Error reporting to EMM/MDM systems continues regardless of this setting
- Immediate Effect: Changes apply immediately without app restart
- Persistent Setting: Selection saved and restored across app sessions
Managed Configuration:
<!-- In advanced_settings bundle -->
<restriction
android:key="logging_enabled"
android:title="Logging Enabled"
android:restrictionType="bool"
android:defaultValue="false" />LogCat Filtering (when enabled):
# Monitor all app logs
adb logcat | grep "AIMBCCapture"
# Monitor specific log levels
adb logcat *:V | grep "AIMBCCapture" # Verbose and above
adb logcat *:D | grep "AIMBCCapture" # Debug and above
adb logcat *:I | grep "AIMBCCapture" # Info and aboveFormat: Session_YYYYMMDD_HHMMSS.txt
Example: Session_20240315_143022.txt
{
"session_start": "2024-03-15T14:30:22.123Z",
"device_info": "Samsung_Galaxy_S24_Android14",
"barcodes": [
{
"data": "1234567890123",
"symbology": "EAN13",
"timestamp": "2024-03-15T14:30:25.456Z",
"position": {"x": 0.5, "y": 0.3}
}
]
}- CAMERA: Core barcode scanning functionality
- MANAGE_EXTERNAL_STORAGE: File operations and session storage
- INTERNET: Network communication for HTTP mode
- EMDK Permission: For Zebra device integration
- App startup checks for permissions
- Displays permission request dialogs
- Provides explanatory text for each permission
- Graceful handling of denied permissions
Diagnosis:
- Check network connectivity
- Verify endpoint URL format
- Test server accessibility
- Review server logs
Solutions:
# Test endpoint accessibility
curl -I http://192.168.1.100:3500/api/barcodes.php
# Check network from device
ping 192.168.1.100
# Verify Docker services
docker-compose psCause: Android security policy blocking HTTP connections
Solution: Use HTTPS or configure network security (development only):
<!-- For development environments -->
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">192.168.1.100</domain>
</domain-config>Possible Causes:
- Insufficient device processing power
- Poor lighting conditions
- Camera focus issues
- High CPU usage from other apps
Solutions:
- Reduce detection parameters
- Improve lighting environment
- Close background applications
- Use higher-end device for demanding environments
Symptoms:
- App crashes during scanning
- Out of memory errors
- Slow performance over time
Solutions:
- Restart app periodically
- Clear cache and data
- Reduce session size
- Enable automatic upload to reduce local storage
Symptoms:
- App doesn't respond to QR code
- No toast message appears
- Endpoint field remains unchanged
Solutions:
- Check QR Code Format: Ensure the QR code contains data starting with
AIMultiBarcodeEndpoint: - Improve Lighting: Ensure adequate lighting when scanning
- Camera Focus: Allow camera to focus properly on the QR code
- Distance: Hold device at appropriate distance (6-12 inches)
- Screen Brightness: Increase WMS display brightness if scanning from screen
Possible Causes:
- QR code contains wrong URL
- WMS generating incorrect endpoint
- Network configuration changed
Solutions:
- Verify the WMS endpoint configuration
- Regenerate QR code from WMS
- Manually verify endpoint URL
- Test endpoint connectivity with curl/browser
Best Practices:
- Only scan QR codes from trusted sources
- Verify the populated endpoint before saving
- Use HTTPS endpoints in production
- Monitor endpoint access logs for unauthorized attempts
Checklist:
- Server is running and accessible
- Port 3500 is open and not blocked by firewall
- Device is on the same network as server
- Endpoint URL is correctly formatted
- DNS resolution is working (if using domain names)
# Monitor app-specific logs
adb logcat | grep "ai_multibarcodes_capture"
# Monitor network-related logs
adb logcat | grep -E "(HTTP|Network|Connection)"
# Monitor performance logs
adb logcat | grep -E "(Performance|Memory|Camera)"