How to determine devices compatibility with a watchface

Hello,

As a part of my tests I have tried to run my watchface of some simulated devices, and interestingly found that it would e.g. run on VA4 and Fenix 6, but not on Fenix 5;

I know I have some code, which requires/uses SDK 3.2.x (e.g. Toybox.Weather), and with that in mind, looked around and found that:

- as per https://developer.garmin.com/connect-iq/compatible-devices/ VA4/Fenix5/Fenix6 are all 3.0 compatible (note no minor version)

- as per their compiler.xml, VA4/Fenix5/Fenix6 all have "connectIQVersion": "3.1.6"

And yet, while I can build-for/sim VA4/Fenix6, for Fenix5 I get "BUILD: ERROR: Device 'fenix5' does not support SDK version '3.2.0'".

Could anyone advise ?

Further, the bigger question in this context, is how to define compatible devices when I publish, given the limitations are:

- min sdk 3.2.0

- round face

  • Round watches is easy.  Out of all the watches with CIQ 3 or greater, the Venu Sq is the only one that's not round.

    for 3.2, understand it's not the same on everything.  For instance, the f5+ devices have 3.2, but don't support weather.  If in doubt, "has" protect your code.

    When you look in the device json files, remember that is the min CIQ version supported, so even if you see something like 3.1.6, devices could have 3.2.x.  In the sim, you can tell by looking at the run config in eclipse and see if you can select 3.2.x

  • Another thing to consider is the fr245/m is round, runs CIQ 3.2 (with weather), but doesn't have a baro so you can't show floor, elevation history, temperature history and a few other things.  So there's other things to consider when adding new targets.

  • - as per https://developer.garmin.com/connect-iq/compatible-devices/ VA4/Fenix5/Fenix6 are all 3.0 compatible (note no minor version)

    That table isn't always up-to-date. The best way to find out what version is supported by a device is to look at the simulator configuration files . If you are using a recent SDK on windows look in C:\Users\<Username>\AppData\Roaming\Garmin\ConnectIQ\Devices\**\compiler.json. You will see that vva4 has ConnectIQ 3.2 support and fenix5 is only 3.1.6.

    And yet, while I can build-for/sim VA4/Fenix6, for Fenix5 I get "BUILD: ERROR: Device 'fenix5' does not support SDK version '3.2.0'".

    As I mentioned above, the fenix5 device only has 3.1.6 support. It sounds like your manifest file has a minSdkVersion attribute that is set to 3.2.0, but you've enabled support for a device that doesn't have 3.2.0 support. The manifest editor in eclipse should make this difficult to do. When you set the minSdkVersion it should not allow you to select devices that don't have support.

  • Thank you,

    Indeed, overlooked the fact VA4 compiler.xml actually contains a second connectIQVersion w/ "3.2.0".

  • The manifest editor in eclipse should make this difficult to do. When you set the minSdkVersion it should not allow you to select devices that don't have support.

    As recently mentioned in this forum, the Eclipse manifest editor has a bug where the increasing the minSdkVersion only greys out the checkboxes for the devices which are no longer available, but does not uncheck any such devices which were already selected. This is also reflected in the fact that manifest.xml still has an entry for these devices.

    e.g.

    1) Create app with min SDK version of 1.3

    2) Select a bunch of devices including FR230 (CIQ 2)

    3) Change min SDK version to 3.x

    4) Note that FR230 is still checked (but greyed out) and still appears in manifest.xml