Which models support API level 5.0.0 or higher?

Which models support API level 5.0.0 or higher?  Is there a list somewhere?

  • See https://developer.garmin.com/connect-iq/compatible-devices/

    Note, devices with 5.1.0 are different and require the 8.1.0+ SDK

  • Note, devices with 5.1.0 are different and require the 8.1.0+ SDK

    I have an Edge 1050 with CIQ 5.1 where IQ apps compiled with SDK 7.3 run without any problems!
    I think it's more like only devices with CIQ 5.1 can process new features of SDK 8.1.

    EDIT: I did a typo: I use 7.4.3 not 7.3

  • Older SDKs don't always flag that you need to update to 8.1.0.  You'll see it if you try 7.4.3

  • Older SDKs don't always flag that you need to update to 8.1.0.  You'll see it if you try 7.4.3

    That bug was fixed in SDK 7.2. [To be clear, I mean the bug where the "supported API" check for devices was handled incorrectly in the compiler.]

    It's very easy to see this by building for an API 8.1.0 device (such as fenix8*): It will correctly fail with SDK 7.2, but incorrectly succeed for SDK 7.1.1 (the SDK which preceded 7.2).

    And none of the SDKs will actually tell you which SDK version you need to update to, they just tell you you need to update your SDK. An SDK knows which API levels it supports (based on SDK_ROOT/bin/compilerinfo.xml:targetSdkVersions *), it doesn't know what API levels *other* SDKs support.

    [*] clearly targetSdkVersions should be called targetApiVersions, but it was obviously named in the beginning, when the SDK version actually was synonymous with API version. That's why manifest.xml supports both minSdkVersion and minApiLevel, and they both do the same thing.

    I have an Edge 1050 with CIQ 5.1 where IQ apps compiled with SDK 7.3 run without any problems!

    Yes, Connect IQ apps could be built in the past with an older SDK when edge1050's compiler.json (in the devices/ folder) had a lower connectIqVersion than 5.1.

    You will find that if you update your devices using the SDK manager, edge1050/compiler.json now has a connectIqVersion of 5.1.0 for the sole partNumber.

    If you try to build for edge1050 with SDK 7.3 now, it won't work.

    I just tried it, and I get the following error message from the compiler:

    ERROR: Device 'edge1050' requires API Level '5.1.0'. The current SDK supports up to API Level '5.0.1'. Try updating your SDK using the Connect IQ SDK Manager.

    This kind of thing comes up a lot in the forums - there's been a long-running debate over whether it really makes sense for the SDK to enforce this restriction or not, given that it was perfectly possible in the past to build for edge1050 with an older SDK.

    Here's a "bug report" (really a request for information from the CIQ team) with some comments from a CIQ team member:

    [https://forums.garmin.com/developer/connect-iq/i/bug-reports/given-that-a-newer-sdk-is-required-to-build-for-ciq-5-x-devices-what-does-this-mean-for-existing-apps-on-device-that-were-upgraded-from-ciq-4-to-ciq-5-e-g-fr955-fenix-7-etc]

  • Which models support API level 5.0.0 or higher?  Is there a list somewhere?

    Also, in general, I have noticed that every device which was released with CIQ 4 now has CIQ 5. This also seems to coincide with the set of devices which are still getting beta firmware.

  • With the 8.1.0 SDK came the updates to devices that are now 5.1.0, and in general, you always want to use the latest production SDK when publishing.  Apps built with older SDKs will probably work, but some fixes may be missed.

  • That can't be true... the Garmin store is full of CIQ apps published in the past before SDK 8 was around, and those all work fine on my FR955 and my EDGE 1050, both of which are API 5.1 devices. You know this... so I must not understand what you mean. Or do you think all those apps will stop working on newer Garmin devices until the developer re-publishes their apps using SDK 8?

  • In my answer on top of this thread I did a mistake: I use 7.4.3 (and I said 7.3 instead…).

    All my datafields with 7.4.3 compiled work flawlessly with my Edge 1050 (CIQ 5.1.0).

  • With the 8.1.0 SDK came the updates to devices that are now 5.1.0, and in general, you always want to use the latest production SDK when publishing.  Apps built with older SDKs will probably work, but some fixes may be missed.

    Yeah, I don't disagree. I'm simply trying to explain mcinner1's observation that apps *built in the past* with older SDKs continue to work on his device that now has API level 5.1.0.

    In my answer on top of this thread I did a mistake: I use 7.4.3 (and I said 7.3 instead…).

    All my datafields with 7.4.3 compiled work flawlessly with my Edge 1050 (CIQ 5.1.0).

    Yes, and as I said, if you now update your devices with the SDK manager and try to build for edge1050 with an older SDK 7.3 (or even 7.4.3.), the compiler will refuse to build an app for that device.

    I really don't know how many different ways I can say this.

    Here's proof:

    - The top left pane shows the current version of edge1050/compiler.json. Note the connectIqVersion of 5.1.0 for the first part number

    - The top right pane shows the bin/compilerinfo.xml for SDK 7.4.3. Note that the last supported API version is 5.0.1. 5.1.0 is not supported. Yes, the tag is called targetSdkVersions, but as explained above, it really refers to API versions.

    - The bottom pane shows a compiler error message, when I tried to build an app for edge1050 with SDK 7.4.3.

    Again if you want context from a Garmin employee on the CIQ team's rationale for this restriction, read the reponses from Richard.ConnectIQ on this bug report:

    [https://forums.garmin.com/developer/connect-iq/i/bug-reports/given-that-a-newer-sdk-is-required-to-build-for-ciq-5-x-devices-what-does-this-mean-for-existing-apps-on-device-that-were-upgraded-from-ciq-4-to-ciq-5-e-g-fr955-fenix-7-etc]

    To be absolutely clear, this is a separate consideration from:

    - whether or not an app built with an older SDK in the past still runs on an API 5.1.0 device

    - if it was somehow possible to build an app with an older SDK for an API 5.1.0 device (e.g. by editing compiler.json by hand to downgrade the connectIqVersion, which btw is not recommended), whether or not that app would work on an API 5.1.0

    --

    And to be 100% clear, nobody here is saying that your old apps will automatically stop working because your device's firmware was updated to support CIQ 5.1.0 (or any new CIQ). (Yes, some uninformed users in the other subforums have said this, and even some Garmin support techs.). But the Connect IQ team has said the opposite: that your old apps will continue to work even if the CIQ API level on your device is updated.

    What we are saying is that you can no longer build for devices which are now configured for CIQ 5.1.0 (in their CIQ device file) with an older SDK.