Activity name showing in Garmin Connect for Badminton/Squash

Hello,

I develop watch apps which allow users to count and recognize strokes during racked sports activities (Tennis, Squash and Badminton) - link.

All of them use API 3.2.0 and record activity using build in generic profile SPORT_TENNIS.

The issue is there is no Squash/Badminton profile available at API 3.2.0. I'm recommending users to go to Garmin Connect settings, use Display Settings and change Activity Name field to: 'Location and Device Activity Name'. However this small inconvenience gives me negative feedback from the users and potentially discourage some people from using my apps. Is there any way (other than using higher API) to make activities recorded by my apps to showing up with correct name in Garmin Connect?

There is an app (Fb3) link which does what I ask about and supprts all older devices, eg. Approach® S60 API 2.4.0

BTW. In case I move to higher API, reduce amount of models/products supported by my app, would the obsolete version of my app be still available in Garmin Express for older devices?

  • Unfortunately I'm keep getting negative feedback and reviewes due to the incorrect Activity name and type so I will keep trying to solve it somehow.

    Maybe there is a way to overwrite activity name/type in FIT file?

  • Yes, it's a pain to keep the jungle file and the code up to date, but if you have memory issues then IMHO that is a way to check out. It helped me. From this thread it looks like you'll need to use different sport and sub type on some devices. How do you want to do that? If you do that decision in the code then you'll have some code "wasted" to do that. If instead you set it up in jungle file that each different device family has it's own constants.mc file, and in that file you have a constant to use for the sport and the sub sport, then you gain that code. Plus the user experience is better, if the app behaves more like the users of the specific device except it.

  • Ok, getting back to this issue. I've already gave up on this for older devices, people are keep complaining but there is nothing I can do.

    For newer devices everything works OK, except...

    I created app dedicated for Table Tennis, I used Activity.SUB_SPORT_TABLE_TENNIS but when activity is saved and syced its recorded as 'Racket sport' with tennis icon. For other sports like Squash, Pickleball, Padel, Badminont everything works fine (for new devices ofc). Here is the code I use:

                    if ((Activity has :SUB_SPORT_TABLE_TENNIS) & (Activity has :SPORT_RACKET)) {
                        session = ActivityRecording.createSession({
                            :name=>$.config.langText["app_name"],
                            :sport=>Activity.SPORT_RACKET,
                            :subSport=>Activity.SUB_SPORT_TABLE_TENNIS
                        });
                    } else {
                        session = ActivityRecording.createSession({
                            :name=>$.config.langText["app_name"],
                            :sport=>Activity.SPORT_TENNIS,
                            :subSport=>Activity.SUB_SPORT_GENERIC
                        });
                    }

    The first condition is being met both in simulator and on real device (Fenix7) - I checked it.
    Has anyone had similiar issue? There are no/not many apps dedicated for Table Tennis so maybe it has not been reported OR recent updates ruined it.
    I just prefer not to be flodded with negative reviews the first day I release the app. Many thanks for any suggestions
  • Have you looked at the saved fit file to see what value is there? That way we would know if the bug is in recording or how it's displayed in GC.

  • Here is the *.fit file log:

    That corresponds to:

    SPORT_RACKET > 64
    SUB_SPORT_TABLE_TENNIS > 97

    However in GC:

    (it says 'Racket sport' and there is a Tennis icon)

  • so it looks like the bug is in Garmin Connect, not in CIQ

  • I would like  to get back to the original issue from this thread which is I would like activities recorded by my app to bt automatically saved as Badminton/Squash etc also on older devices with low API < 4.1.6. It is possible for  other apps in store so I contacted other devs and was told that they simply hardcoded the sport and sub sport eg. (95 instead of passing constant SUB_SPORT_BADMINTON). This would work except...

    When run on device which does not support it app gets crashed. I can handle different devices as suggested previously in this thread however I need to know  which device will crash. The problem is in simulator every device thinks it has those SPORTS and SUB_SPORTS so there is not crash. IS there any way to check which device will crash without having all of them in hand? thanks