I just want to draw attention to the fact that the method getApplicationInfo and it's usage is not documented properly in the Garmin documentation for Android BLE. There, on page 9 of the Connect IQ Android Companion App Programmers Guide there is a code sample (and description) of the intended usage of this method. The code sample says:
IQApp app = connectIQ.getApplicationInfo(device, MY_APPLICATION_ID);
but the API docs clearly define the method with a different signature:
public void getApplicationInfo(java.lang.String applicationId, IQDevice device, ConnectIQ.IQApplicationInfoListener listener) throws InvalidStateException, ServiceUnavailableException
So, the guidelines are wrong, and they should be updated.
Furthermore, there seems to be an unresolved bug with this method, as described here: https://forums.garmin.com/showthread.php?315054-No-callback-from-getApplicationInfo&highlight=getApplicationInfo
Is this considered to be a minor issue? Because it does not seem as such to me.