Hi ifor,
You can check if the phone support USB Host by checking for the USB Host Feature:
PackageManager pm = this.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_USB_HOST))
{
// Device has USB Host
}
else
{
// Device does not have USB Host
}
PackageManager.FEATURE_USB_HOST is not defined before Android API Level 12, but the ANT+ Demo source shows how to work around this.
You will either require a USB OTG cable, or be using a tablet with a full-sized USB-A host port.
The ANT API updates were done in such a way that existing apps would not require any redevelopment effort to support USB sticks. The new API which is in the works will handle this better.
Until then, you can send an ANT Version request message and check the first three letters for the chip family of "AOV" or "AUM". This covers the currently available built-in chips.
One caveat that has not yet been documented is how we handle the fact that an Android bug means the USB_ATTACHED event never occurs. We will manually perform a scan for newly attached USB sticks if none were available during an enable, so you will probably want to add an enable/disable button to your GUI.