You're coding up an integration to an IDTech Shuttle and you can't figure
out why the darned thing won't wake up. Here's what you should check.

Check the name and contents of the idx_unimagcfg_default.xml file in
res\raw. Don't have that file? Go get a copy out of the SDK from
IDTech. Don't have the SDK? Stop, contact them, get the stuff you
need before you proceed.

Check that you're using the latest UniMag library. The version I'm
working with right now is IDT_UniMagSDKAndroid_v4.2.jar.

Make sure you have a "uses-permission" entry in your manifest for the
android.permission.RECORD_AUDIO permission.

Check the idx_unimagcfg_default.xml to see if it has your device model
name listed. In fact, if you haven't yet, you really should look at
that file to understand what the IDTech is actually doing. It's working
like a modem, and it has to fine-tune the audio properties of the
audio jack in order to work properly.

And while we're at it, are you sure the audio jack on your device
is functional?

None of that worked? Time to dig in a little. Try your code again, this time
paying attention to the logcat output. IDTech is pretty good about logging
problems as they occur. For instance, the permission problem will surface
as an AudioFlinger error -1. If there's no error, then there's something you're
not doing. You have to instantiate the uniMagReader with a reference to
an object that implements uniMagReaderToolsMsg and uniMagReaderMsg, and that
object should be handling messages. If you're confused about this, check the
example code in the IDTech SDK.