BLE communications without App Store

Former Member
Former Member

I have an application on an IoT device running an Android program to facilitate communications with a Garmin Watch. The goal is no use of downloads like GCM.

I'm able to see the connection and attempt to pair on both devices, but pairing fails or times out on the Watch. The MobileSDK requires GCM as far as I know. I am in search of a workaround for this. The service and characteristics can be seen by the Watch, but pairDevice() fails after scanning the correct service advertisement from the device.

The Android side advertises, and accepts the connection (MAC address paired)
The Garmin Watch side scans, identifies correctly, but isn't receiving the Ble.CONNECTION_STATE_CONNECTED signal for onConnectedStateChanged.

Any information or direction is helpful. 

  • If you're talking the Bluetooth Low Energey Module, you don't need for the app to be in the store.  But as of now, I've not heard of anyone that's been able to pair with a phone over CIQ BLE.  Sensors and other things like a Pi, yes.  The phone, no.

    Using this app, you can see if the garmin device can see the GATT server and if it's advertising in a way it can be seen by CIQ:

    https://apps.garmin.com/en-US/apps/9bcc8b66-8385-4afb-b93e-f69e01422284

    Use Something like Nordic's nRFConnect to see the particulars for the advertisement, etc.  You could also run in to a problem if the phone is already connected to the garmin device for things like GCM.

  • Former Member
    0 Former Member over 4 years ago in reply to jim_m_58

    Yeah I can see the GATT server on the watch. Just not currently using the Mobile SDK, which would make it easier, but isn't feasible. Other BLE devices can connect, read, and write to the BLE Profile. 

    Hopefully I can obtain a concrete "This cannot be done with Android." or if it's just some trickery I need to work into my Android program. That I can do, if it's possible. I shall keep hacking away.

    Appreciate your response.

  • An easier solution might be to use makeWebRequest from the gamin to "localhost" on the phone and then set up a tiny web server on the phone.

    I suspect you'll run into issues with the same BLE mac address (the watch) talking to the same BLE mac address on the phone.  Search the forum here, as people have tried to use CIQ BLE to a phone and had no luck.