Over time, I've added a few options to my apps to deal with common issues related to flash drive devices. Since they've been added over time, they're not necessarily minimal or easy to understand in combination. So here is a short tutorial explaining common issues you may have with the devices above (or when you have no device at all, see case 4 below) and how to set the options in different cases.
In all cases, it helps having a file explorer app. I normally use Astro. It also helps to know how to look for a Garmin device. As a first cut, you can simply ask Astro to look everywhere for a folder called Garmin. Please leave 20-40 seconds to the device to actually mount as a drive (some models are slow).
My apps look for a USB Garmin device or for an ANT+ dongle by scanning USB devices. Some Android devices (that's more common with old ROMs) will recognize the Garmin as a flash drive, mount it as such, but hide it as a USB device. In that case, the app will just say "device not found" and won't get any further. To fix this, you simply have to check "Force flash drive scan". The app will look around for a Garmin device filesystem, and use it.
Case 2) The app finds the "wrong" place when scanning the file system. This may happen with or without the setting of Case 1.
In this case, if you enable diagnostics, you'll see something like:
T trying xml device file
T trying fit device file
Mounting path not found
error reading device file
Now, there are actually two possible reasons for this error. The first is that your Garmin has actually lost the device file. It has been reported several times in the Garmin forums over time (well before my apps existed :-), and happened to a few people using my apps as well. A Garmin device is identified by a couple of files (GarminDevice.XML and Device.FIT for some models). Sometimes those files get erased, but it's enough to turn off / on the Garmin, connect it to your PC, and the Garmin will re-create those files, as they're just a copy of data stored in its ROM. So this is actually the first thing you may want to try.
The second possible reason is that you have an sd card in your Garmin (Edge), and the sd card is being found before the real device, and (at this time) my app gets confused. If this is the case, use the file manager to find the place where your Garmin is actually mounted. For example, say that your tablet is mounting the Garmin sd card at /storage/UsbDriveB/Garmin, and the real device as /storage/UsbDriveA/Garmin, but the app gets confused as is looking only in the sd card (where you don't have a device file). In this case, you can click "force flash drive path" and set it to /storage/UsbDriveA (of course, this is just an example, and might be different in your case). Note that the path is case sensitive (as usual in Android) and that you have to leave the Garmin part out.
Now the app will look in the "right" place, find the device files, and read the activities from the internal memory.
Case 3) You actually keep your activities in the sd card, not in the internal memory.
That's different from the above. If you use the technique of Case 2, the app will find the device files, but will also try to read from the internal memory. That's a bit of a catch-22, because the app is looking for the device file to understand which device is connected, the folder structure (some Edge models keep the activities in a History folder, some in the Activities folder), etc. However, if you save to sd card, the device file is in the wrong place, so to speak. Enter the last setting :-). Say that your sd card is mounted under /storage/UsbDriveB/Garmin, and that your activities are in the Activities subfolder. Click "force files path" and set it to /storage/UsbDriveB/Garmin/Activities (again, it's just an example, it's case sensitive, and you have to provide the entire path down to Activities or History this time ).
Case 4) You just have a bunch of files you want to import
This is relatively rare, but I've got a few requests in this sense, from people who get their TCX through some app, and want to use the ability of my apps to upload to many web applications with a few clicks. This is rather simple: again, click "force files path" and set it to the folder where you keep your files. The app will load all the new TCX and FIT files, where "new" means it has now loaded a file with the same name before. GPX is not handled at this time, but it will be at some point.
Case 5) You have a Nexus 7 or 10, or another Android device which won't mount flash drives unless rooted, and you don't want to root your tablet
This is not particularly straightforward, but a workaround is to use the Nexus Media Importer to copy your FIT or TCX files from the Garmin to any place of your choice in your tablet. After that, it's just like Case 4.
Did I forget any reasonable case? Let me know : )
By the way: there is also the opposite case, where the Garmin is recognized as a USB device but not mounted as a flash drive; that's a different issue [did I mention Android fragmentation? :-)] and I'll deal with that in a different tutorial.