Zebra Handhelds
Set up DataWedge on a Zebra Android handheld so the trigger scans straight into the Sporeline app.
Zebra Handhelds
Zebra rugged handhelds (TC22, TC52, ET40 and similar) read barcodes with a scanner behind a physical trigger, not the camera. Zebra’s DataWedge app takes each read and hands it to whichever app is open. The Sporeline app accepts it in two ways:
| DataWedge output | How it reaches Sporeline | When to use it |
|---|---|---|
| Intent output (recommended) | A broadcast the app listens for | Most IT teams already use it; it does not depend on a text field having focus |
| Keystroke output | Typed into the app like a keyboard, ending with Enter | The fallback, and what DataWedge does on a new device before any profile is set up |
Both work on the Scan, Move by Scan, Scan Session and kiosk screens. If a profile has both outputs on, the same code arriving twice within half a second counts as one scan.
Who can do it
Anyone with the handheld. The scanner settings are saved on the device, not on your farm, so each device can be set up differently.
What the app needs from DataWedge
A DataWedge profile that:
- Is associated with the app
com.mycoops.grower(all activities,*). - Has Barcode input on, with at least QR Code enabled. Turn on Code 128 and Data Matrix if your labels use them.
- Has Intent output on, Intent delivery: Broadcast intent, and an Intent action that matches the one shown in the app under Scanner settings. The default is
com.mycoops.grower.SCAN. - Has Keystroke output off (or on, as the fallback below).
The quick way: let the app write the profile
- Open Scan in the app. The scanner status at the top of the screen reads No Scanner until a scan arrives, then turns green.
- Tap the scanner status. Scanner settings opens. You can also open it from More, then Settings, then Scanner.
- Check the first line says This device can receive DataWedge intents.
- Leave the intent action as
com.mycoops.grower.SCANunless your IT team uses a different one. If you change it, tap Save. - Tap Write the Sporeline profile to DataWedge. You’ll see DataWedge took the profile. Pull the trigger to test. If DataWedge refuses it, the screen says why instead. The most common reason is that this app is already linked to another DataWedge profile on the device: remove that link in DataWedge, or set up the profile by hand below.
- Pull the trigger. Last intent scan shows the time of that scan.
The app only writes the profile when you press the button. If the device has no profile named Sporeline, it creates one. If it already has one, only these settings in it change: barcode input on with QR Code, Code 128 and Datamatrix, intent output on with the action shown, and keystroke output off. Everything else in that profile stays as your IT team set it. Profiles with other names are never touched.
Setting up the profile by hand (intent output)
- Open DataWedge, tap ⋮ > New profile, and name it
Sporeline. - Associated apps > ⋮ > New app/activity: pick
com.mycoops.grower, then*. - Barcode input: on. Under Decoders, turn on QR Code, plus Code 128 and Datamatrix if you need them.
- Keystroke output: off.
- Intent output: on.
- Intent action:
com.mycoops.grower.SCAN(or the action shown in the app’s Scanner settings) - Intent category:
android.intent.category.DEFAULT - Intent delivery: Broadcast intent
- Intent action:
- Open Sporeline, go to Scan, and pull the trigger.
Your IT team can also apply the same settings through the DataWedge SET_CONFIG API. The exact bundle the app sends is kept in the Sporeline source at mobile/packages/grower-app/datawedge/sporeline-datawedge-profile.json; ask us for a copy.
The fallback: keystroke output
If intent output isn’t allowed on your devices, use keystrokes instead:
- In the
Sporelineprofile, turn Intent output off and Keystroke output on. - Under Keystroke output > Key event options, turn Send ENTER key on. The app treats Enter as the end of a scan.
- Under Basic data formatting, leave the prefix and suffix empty.
The app still reads a scan with no Enter after a short pause, but Enter is faster and more reliable.
Setting up a fleet
Set up one device first, test it, then copy its profile to the rest:
- On the first device, open DataWedge > ⋮ > Settings > Export > Export profile, and pick
Sporeline. This savesdwprofile_Sporeline.db. - With StageNow or your MDM, push that file to
/enterprise/device/settings/datawedge/autoimport/on every other device. DataWedge imports it as soon as it lands. - If your fleet uses a different intent action, set the same action in each device’s Scanner settings in the app.
Troubleshooting
The trigger does nothing
- The intent action in DataWedge and the one in the app’s Scanner settings must match exactly, including capitals.
- Check the profile is associated with
com.mycoops.grower. A read goes to the profile of whichever app is open. - With keystroke output, check Send ENTER key is on and nothing adds a prefix.
- Not available in Scanner settings means this app build is older than intent support, or this isn’t a Zebra Android device. Keystroke output still works; update the app to use intents.
A code scans twice
- The app counts the same code arriving by both outputs within half a second once. Scanning the same label again after that counts again, on purpose.
The scan opens nothing
- Only Sporeline labels open something in the app. Check the label was printed by Sporeline.