User Settings on Development App on actual device

Former Member
Former Member
I have developed a watch face that runs well on the simulator. I am able to use the 'App Settings Editor' to change the user settings that I have included on the watch face for the simulator and these work. I have used the 'Build for Device Wizard' to put a copy of my watch face on my device. When doing this there was no place to set the user settings so the watch face is running with defaults. Using Garmin Express the watch face shows up as 'Development Watch Face' and does not allow me to change user settings (the ... icon is missing). Is it possible to change the user settings of a development watch face running on actual hardware? If so, how would I do this?
  • settings only work for apps that are uploaded to the store.

    what you can do while you're still in testing mode add to the end of your title DO NOT APPROVE so you can test everything, once everything works ok remove the DO NOT APPROVE to get the app approved.
  • As Peter said, it's got to be in the app store to test app settings from GE or a phone. See point #7 in the new developer FAQ.
    https://forums.garmin.com/showthread.php?339891-New-Developer-FAQ

    Note on using "DO NOT APPROVE" in the title: This is a one time thing. Once it is approved, there's no easy way to go back to a "pending" state. You could remove it and add it again, but you'll lose stats, etc.

    Something that's useful to point users to if they've never used app settings is the "how to" for app settings in general:

    https://forums.garmin.com/showthread.php?332843-How-to-App-Settings
  • Actually, there is a way to push settings to your watch, for dev apps that are not on the store.

    1) Make sure simulator is running
    2a) In Eclipse, use the app settings editor; edit your settings as desired and send them to the simulator
    2b) Close app settings editor
    2c) Open app settings editor and select your project. This is important; this step will load the current app settings from the simulator and save them to a file you will retrieve in the next step. When you select your project, you should see a progress bar fill up (which indicates that settings are being retrieved from the simulator). If you get an error message that says you were unable to communicate with the simulator, try again.
    3) Navigate to your OS's user temporary directory. In Windows, you can type %TEMP% into the explorer location bar (File Explorer > CTRL-L).
    4) Look for the most recent file named temp_app_settings*.tmp (sort file list by date modified, in reverse order). Copy this file to safe/known place, like your desktop.
    5) Connect your watch via USB
    6) Look under GARMIN\APPS\SETTINGS for the .SET file with the same name (sans extension) as your dev .PRG. Rename or move this file to a safe place.
    7) Copy the file you found in step 4) to GARMIN\APPS\SETTINGS and rename it to match your PRG.

    I tried it with a data field that I had previously recompiled from source and sideloaded to my watch, and it worked.

    You could also use this technique to reverse-engineer the settings file format. I looked at different setting files for various apps; with enough time and effort (tweaking settings and looking at settings files in a hex editor), you could figure out the exact file format. But the above procedure is easier.

    (If you try the above process, you will also see that files called temp_app_settings*.000 (or .001) are created in your temp directory. These do seem to represent the settings that are sent to the simulator, but IMO it's more reliable and simpler to just retrieve the current simulator app settings and use that file.)

    ---

    Edit:

    Or like jim said, just copy the settings file from %TEMP%\garmin\apps\settings\MYAPP.SET to your watch.
  • Using the .set from the sim is good if you want to test some settings on the real device (but not change them), or if you need something like an apikey on the device.

    You can just grab the .set from the temp directory for the sim in the apps/settings directory - it's name will be the same as the .prg you sideloaded. No need to find/rename .tmp files On Windows, %tmp%/Garmin looks just like a watch, directory wise.

    The one thing it won't do is check you covered some of the "quirks" with app settings and real devices. One case in point is noted in the new developer FAQ, point #10. Numbers being sent as floats....

    There also seem to be some limitations right now with things like max string lengths. There are some bug reports on that, but not seen it myself.

    If you're new to app settings, the "Do Not Approve" thing is the best way to go.

    I'd skip the hex editor thing myself. It's too easy to induce errors by setting something wrong and messing up the file, and you have things like numbers and floats to deal with, etc. I'm pretty sure it can't even be done with the .str. (If I recall, it was 2.1.0 where the watch started using a secure .str, and you can't just copy it from the sim's directory to the watch as you can with the .set)
  • You can just grab the .set from the temp directory for the sim in the apps/settings directory - it's name will be the same as the .prg you sideloaded. No need to find/rename .tmp files On Windows, %tmp%/Garmin looks just like a watch, directory wise.


    Even better, thanks! Can't believe I didn't even bother to look for a directory called GARMIN. (I always do things the hard way. I had actually assumed none of this was stored on disk, so I went to the trouble of tracing the network communication between the app settings editor and the simulator. >_>)

    In my case, the app is already on the store, but not for my device. The author was nice enough to put the source on github, so I have my own private copy now. I have no intention of re-releasing it (for various reasons), so it's nice to have a way to change the settings without submitting it to the app store.
  • Yes. %tmp%/garmin is "just like a device", so same structure, names, etc. For testing you can also do things like delete the .set from there so a new one will be created next time you run the simulator with the default values for your app.
  • Former Member
    Former Member over 7 years ago
    Thanks everyone. I ended up using the %TEMP% option as my main aim was to see which colour combinations were readable and which I needed to cull.
  • For this, it's something where the "Do Not Approve" is handy. Using app setting from your phone, you can try different color combos while the watchface is running. As soon as you change something and hit "done", you'll see the change right away. When you use onSettingsChanged() your app knows when it needs to re-read the settings.
  • why not add a "copy .SET" option to the build for device wizard so noone has to deal with finding this thread to figure out how to manually copy it? its more handy to use rather than releasing a do-not-approve version every time.
  • Things have moved on a little since "Do Not Approve" which is an obsolete process.

    It is now possible to upload an app as a beta app which goes live immediately, but can only be seen by you. This allows you to access settings without having to jump through hoops.

    But it would be nice if you could easily copy settings to a watch for a side load too. Having this as an option in the build for device sounds like a neat idea.