Proper ConnectIQ pattern for specific use case

Hello,

I'm a software dev in my day job but am new to Connect IQ development. I'm curious what the recommended Connect IQ design should be to support the following:

1. User loads the Connect IQ app
2. App allows the user to make a selection from a menu
3. After making the selection the native activity selection screen is loaded
4. During activity recording, the selection the user made in step #2 is stored in a data field

Step 1 and 2 are an app. In step 3, do I use an Intent to load the native activity selection screen? And in step 4, how would the selected field be loaded into a custom data field?

I'm sure this is a newbie question, but I haven't gotten my head around it through reading the docs yet.

Thanks!
  • Former Member
    Former Member
    The intent system is not currently able to push into the native selection except for starting specialized modes (e.g. navigating a course, or doing a workout).

    It is also not possible to share data from an application to a data field.

    I think the closest you can get to this use case would be to have the user make the selection mentioned in step 2 via Application Settings for a data field app type. This could be done prior to opening the native app selection menu, but would not be part of the selection flow.
  • Thanks for the response Brian! Is it possible to get the list of favorite activities from an app? If so, would creating a session with the sport set to one of those favorites have the same effect as starting an activity from the native menu?
  • That's not possible. In CIQ you can't see things like 'favorites"

    And favorites aren't always native apps, as they can be CIQ watch-apps.
  • Former Member
    Former Member
    As Jim indicated, you cannot get the favorites list. Starting an activity recording session with the running type would be similar to running the native running activity mode, but Connect IQ would not share the activity mode settings, or functionality of that mode.
  • Thanks, I'll try starting a specific activity type from the application. Also, is it possible to record a developer data field from an application, or does that require a data field application? My goal is to achieve the following:
    1: User launches app
    2: Makes a selection from a menu of options (a workout ID)
    3: Starts an activity
    4: Selection from step 2 is stored in the Session mesg dev data field, so that when the user uploads the file to a site we can correlate the generated file with a specific workout.
  • Former Member
    Former Member
    The FitContributions module used for recording custom data to a FIT file is available to both the Data Field type and the Application type.
  • Are any FitContributions that are set in an Application only contributed as part of that App? So if I use an Intent to launch a Workout, those data fields are not placed into the workout.

    I'm still searching for a non-clunky way to allow a user to make a selection from a menu of options (a workout ID), but then have a native activity launched (or a Workout), then that ID is inserted into the FIT file. It seems like the Application sandboxing prevents this type of UI flow.
  • To use fit contributor in a native app, you need to have your own data field.

    To use them in a CIQ watch-app, that app itself must be recording a .fit file (so they can be written)

    When you launch a native app, your app is gone and nis no longer running.
  • That makes sense -- what's missing, though, is how to create a data field which is populated by a user/ui driven selection. Not a sensor, or not a calculation based on existing sensor. Also, per Brian's response above, I'm not sure the Settings-based approach above meets the requirement, as those settings can only be set manually by a user, not driven by data returned from a web endpoint. Am I missing something, or can this not be achieved in CIQ?
  • Sound like you want an watch-app and DF to share some data - that can't be done on the watch. Using background comm, the DF could pull something off the phone, that your app put there, but that's kind of a kludge.