App running fine on Fenix 7, but on fenix 8 several problems.

Dear all,

I need some help.

I have an app running perfectly fine on Fenix 7, but on Fenix 8, users reported: 

- Slow menu with buttons;
- No sound (the app should do some bips in relation to the vertical speed);
- GPS speed always to zero.

Users updated to the last firmware. I tried several to compile with several SDK up to 8.2,1 but no success.

The app works well on simulator and no ERA report, which is correct since no IQ logo.

Would someone have an idea what is going on or where to look?

Thanks all

  • - No sound (the app should do some bips in relation to the vertical speed);

    How are you generating the "bips"? 

    Newer watches such as the fenix 8 have a speaker so do not have a tone generator. Unfortunately, from CIQ you cannot determine if there is a tone generator or not!

    So if the watch has a speaker, you cannot play arbitrary tones from a tone profile, only system tones which are pre-recorded and played via the speaker.

    If your code is using a tone profile to generate the "bip", this won't work on a fenix 8. You won't get any errors or warnings, you'll just hear nothing. You'll have to switch to a system tone such as TONE_LOUD_BEEP. Not the best user or dev experience.

  • Newer watches such as the fenix 8 have a speaker so do not have a tone generator. Unfortunately, from CIQ you cannot determine if there is a tone generator or not!

    Even for devices that have a tone generator, the user may be using connected bluetooth earbuds/headphones. In this case, it's the exact same problem - ToneProfile sounds won't be heard by the user. And built-in system tones are prerecorded (and sound quite different - arguably better - than the generated tones that play on the the "buzzer" / "beeper").

    I don't understand why Garmin can't or won't use a software tone generator to handle the case of a real speaker or headphones.

  • I don't understand why Garmin can't or won't use a software tone generator to handle the case of a real speaker or headphones.

    Yes, this does seem like the obvious fix. I wonder if there is some technical limitation, or they just don't think it's important enough.

    Plenty of things people cry out for, such as data field location which seem obvious don't get implemented. 

  • Some users of my app reported that the Tone is working with previous version of the app... I tried to compile with earlier SDK but an error comes with "Fenix7s requires API level 5.1.0".....

    I tried down to 7.2.1 and then it compiles, but one of the function used in the code is not compatible.

    To me, there is something wrong with the newer SDK, and not with the fact that some watches have a speaker... 

    I am lost.... 

  • I tried down to 7.2.1 and then it compiles

    Technically that's a bug and it's not supposed to work. (Same with every SDK older than that.)

    SDK 6.* will happily build for all the new CIQ 5 devices which were released years after the SDKs, but that doesn't mean it's a good idea. 

    Long story short, there's a file in each SDK folder called compilerinfo.xml which has a list of supported CIQ API versions. (It's misnamed targetSdkVersions, but it should really be called targetApiVersions. Same with how minSdkVersion in the manifest became minApiVersion.) The compiler is supposed to check compilerinfo.xml when it builds for a device that's configured with a given CIQ version in compiler.json.

    For example, fenix7s is configured with CIQ 5.1.0 (as per your error message), which means that only SDK with the requisite support in compilerinfo.xml are supposed to work.

    But old SDKs (around SDK 7.2.1 and older) have a bug where they assume that SDK X can always build for API X (or lower). That's why SDK 6.* and SDK 7.2.1 all thinks it can build for CIQ API 5.1.0. (This is because there was a time many years ago when the SDK and API versions were the same.)

    I will say that if you are able to build with such an old SDK, it *may* work if it's a simple app. If you use certain features (like menu2 resources), you may have issues. Others have reported "bugs" when they built with an SDK that was too old for Fenix 8 (for example), but the "bugs" didn't apply when they used a more recent SDK.

    Furthermore:

    forums.garmin.com/.../connect-iq-sdk-8-2-now-available

    For System 8 devices receiving the 2025 Q2 QMR, any app that is being side-loaded to the device must be built with Connect IQ SDK 7.4.3 or greater. In July, we will be setting the minimum SDK version to 8.1 for uploading apps to the store.

    So pretty soon (or already), the question of whether building with old SDKs is ever beneficial will be moot.

  • To me, there is something wrong with the newer SDK, and not with the fact that some watches have a speaker... 
    I tried to compile with earlier SDK but an error comes with "Fenix7s requires API level 5.1.0".....

    Ok, but in your OP, you specifically said:

    >  I have an app running perfectly fine on Fenix 7, but on Fenix 8, users reported: 

    And the title of your post is literally:

    > App running fine on Fenix 7, but on fenix 8 several problems.

    Logically speaking, if it was a problem with the newer SDK, then Fenix 7 users should see the same problem with the newest app vertsion (built with the later SDK.)

    But you said twice that Fenix 7 users are not having problems

    To me, there is something wrong with the newer SDK, and not with the fact that some watches have a speaker... 

    You never answered this question:

    How are you generating the "bips"? 

    If you use ToneProfile to generate beeps, it will not work on devices with a real speaker (not a beeper), like Fenix 8. ToneProfile beeps will also not be heard through connected headphones, regardless of device.

    A member of the Connect IQ team already confirmed:

    - predefined tones (TONE_*) will play on devices that have a real speaker (not beeper)

    - ToneProfile will not work on devices that have a real speaker (not beeper)

  • It is sound logical, you are right.

    This is strange... I will investigate with 2-3 users, but just a last question. 

    Do all Fenix 8 have speaker?

    One more issue is my app menu which are really really slow while using the touchscreen. With the buttons, the menu is ok. Any idea?

    Thanks all!

  • It's not only f8 devices that have a speaker.  The fr570 devices, fr970 and Venu3 also have one.

  • there's a file in each SDK folder called compilerinfo.xml which has a list of supported CIQ API versions.

    Interesting that SystemLevel went back to 4 here

    <version supportsBarrels="true" systemLevel="4">3.2.0</version>
    <version supportsBarrels="true" systemLevel="5">3.3.0</version>
    <version supportsBarrels="true" systemLevel="6">3.4.0</version>
    <version supportsBarrels="true" systemLevel="4">4.0.0</version>
    <version supportsBarrels="true" systemLevel="5">4.1.0</version>
    <version supportsBarrels="true" systemLevel="6">4.2.0</version>
    <version supportsBarrels="true" systemLevel="7">5.0.0</version>