My D2 Bravo watch has had issues with some widgets (built-in and Connect IQ) accessing network resources since I upgraded my phone to Android 7.1 recently. As part of the investigation I discovered that I could not replicate this problem with any of my widgets, which use the older [FONT=Courier New]Communications.makeJsonRequest()[/FONT] method. When I updated one of the widgets to use [FONT=Courier New]Communications.makeWebRequest()[/FONT] the widget immediately stopped working, returning an error of -2 (BLE_HOST_TIMEOUT). It's importantly to note that none of this is exposed in the simulator environment; this error is only seen on a real device when connected to a device via BLE and thus using GCM to access the Internet.
I also saw this same error with Garmin's own Tides app (a Connect IQ app, available in the Store), which I suspect is also using the newer method. The app reported it could not retrieve tide data until I connected my watch to a different Android device, one that was running Android 5.x.
This may or may not also be related to Bluetooth crashing within Android 7.1, as detailed in this thread.
I'm hoping to bring this up at the Connect IQ Summit next week since this seems like it might be an error related to several groups within Garmin.
Potentially related (or red herring) threads on the forums:
- https://forums.garmin.com/showthread.php?369681-Bluetooth-Crashing-amp-Garmin-Exception-in-system-logs-Android-7-1-1
- https://forums.garmin.com/showthread.php?373080-Connected-not-connected-connected-not-connected-weak-bluetooth-signal
Cheers,
Douglas