Hi,
I´m a little confused right now.. I initialize hasWeather with false and print it. After the check I print it again and it states true even if the simulated device is API 3.1 or lower.
Hi,
I´m a little confused right now.. I initialize hasWeather with false and print it. After the check I print it again and it states true even if the simulated device is API 3.1 or lower.
The main reason to use minSDK is preventing to download app to devices not fulfilled version.
If you have minSDk=1 it means everybody can do it so your app can't use any function above 1.0 or you have…
If it's too low for your app, the store displays a message and the app can't be installed.
Every one of my 50 or so production apps has a min ApiLevel of 1.x. To handle…
Ok. I have sideloaded the exact same code on a vivoactive 3 and looked into the logging txt. Has weather returns false as it is expected - why doesn´t do this in the simulator....
Yes it is without music - s60 like suggested above does the same thing.
This is the reason we need these things in the documentation. You can vote on this "feature" request: forums.garmin.com/.../improve-documentation-add-api-levels-and-system-levels-to-device-reference
It's basically there with "supported devices". In the case of Weather, it became available in CIQ 3.2, but there are exceptions. While the f5+ devices have 3.2, they don't support Weather.
Jim, it's not there! You keep saying it's there and I keep explaining it isn't there: From https://developer.garmin.com/connect-iq/compatible-devices/ or any other source I am aware of there's no way to know what is the MINIMUM possible CIQ version for a device (like what is the lowest possible version if you'll get a watch from the factory, from the 1st batch)
Check the doc in the SDK and not what you see online as I've said before. The online doc doesn't show supported devices, but the doc in the SDK does.

I'm really not seeing why the min is so important to you. If it's too low for your app, the store displays a message and the app can't be installed.
That is one way to use this information if you have it. Another way to use it is what I want:
instead of having code like:
I think you need to get a better understand of how things work. What "Since: API Level" means, and what "Supported devices" mean. Seems you are the only one in 7+ years having this issue.
Maybe play around with "has" to understand that. It's at the very top of my toolbox when it comes to multi-device/multi CIQ level support. Loom at devices with the same CIQ level, but that have a baro or don't You need to handle that.
If you are worried about a few bytes here and there, you really need to look at your code over all. You never want to be too close to the edge, where a few bytes is make it or break it.
I'm curious about something which Garmin has never addressed, to my knowledge.
Considering that System 5 is:
- For devices with API level 3.X: API level >= 3.3
- For devices with API level 4.X: API level >= 4.1
How is possible to the use the minApiLevel attribute in manifest.xml to include System 5 devices/firmware (and only those devices)?
Assuming that minApiLevel works in a completely straightforward and expected manner
1) If you specify minApiLevel >= 4.1, then you will exclude 3.3 devices (but you don't want that if you're targeting System 5)
2) If you specify minApiLevel >= 3.3, then you will include 4.0 devices (but you don't want that if you're targeting System 5)
As a matter of fact I tested both of these scenarios (*), and they both behaved as described. (There's really no other sane way for minApiLevel to behave)
Please don't say "use has", since it's entirely possible that someone wants to make an app that *requires* a System 5 feature to be available, like an app that revolves around having access to the gyroscope or something.
It seems to me that, in fact, the only way to achieve what the dev wants in this case is to use "has", and display an error message at runtime if the user has a device that's eligible for System 5 (like Venu 2s), but doesn't have it (maybe they never updated to 4.1.x, or maybe their device is APAC and doesn't have the update.)
(*) Test procedure
1) set minApiLevel to 4.1, try to build with fr945lte, where the max CIQ api level is 3.3.1.
2) set minApiLevel to 3.3, try to build with wearable2021, where the max CIQ api level is 4.0.0. If you don't have wearable2021, you could temporarily edit the venu2s compiler.json file by hand to remove the reference to 4.1
How is possible to the use the minApiLevel attribute in manifest.xml to include System 5 devices/firmware (and only those devices)?
Every one of my 50 or so production apps has a min ApiLevel of 1.x. To handle the differences, I exclude targets, use "has" or in some cases, Jungles.
I learned many years ago that setting min API caused more issues than it was worth. I'm thinking the 2.1.x SDK was involved. With CIQ 3.3.x and 4.1.x it's very obvious again.