Is there a programmatic way to extract the actual CIQ App/Datafield Name - to map the randomized PRG filename to the associated App Name?
Is there a programmatic way to extract the actual CIQ App/Datafield Name - to map the randomized PRG filename to the associated App Name?
The mappings from PRG name to app name are present in garmindevice.xml -- you can extract the mappings programmatically if you can access the device "file system" (via USB Mass Storage or MTP) and parse…
I expected them to be kept there if they were there previously because the same app was already there from the store. Now I know this isn't the case.
Jim's idea doesn't work on fr965 because it's a music device so I can't see any prg file.
It does work, but he's glossing over the part where you would look in garmindevice.xml to see the filename of the PRG installed from the store.
You can either sideload the app while the store version is installed, and use the filename of the store app, or you can remove the store app before sideloading and rely on the fact that the sideloaded app name will not change (with the possible exception of truncation to 8 characters.)
I didn't mean to say the garmindevice.xml wasn't changed, but that my app wasn't in there (even though I did start it and I know it's the right version because I have a version const that I display on the main view just to be sure I'm debugging the latest build).
But I think I made it work now. I don't know why it didn't work previously. I "downgraded" to the store version from Connect IQ app, then I did see it in the xml, noted the filename, and then sideloaded the new build and added the txt file, and I can finally see the logs.
I'm a little confused - when you said "it doesn't work!" and you had previously installed the app from the store, at that point was the app from the store still installed? Sounds like it wasn't, based on the next thing that you said about "downgrading" to the store version.
I don't think sideloaded apps (which are not *currently* installed from the store) would appear in garmindevice.xml. Sorry I didn't make that clear.
Or maybe you interpreted what was said about garmindevice.xml as though installing an app through the store would cause it to appear in garmindevice.xml permanently, even if the app was later removed. Or that subsequently sideloading an app with the same ID (after removing the store version) would cause the store PRG filename to be "resurrected". Neither of those things are the case.
So to be absolutely clear (although I'm sure you get this by now):
- When you sideload an app, and an app with the same ID that's been installed from the store does not currently reside on the device, then the app filename on the device will be unchanged (with the possible exception of truncation to 8 characters, not including the extension.)
- When you sideload an app, and an app with the same ID that's been installed from the store currently resides on the device, then the sideloaded app will take on the filename of the store app
Yeah I double-checked and sideload-only apps don't show up in garmindevice.xml. Never expected them to, tho.
Yeah, I think what happened is something like this sequence:
1. had the app from the store
2. sideloaded
3. tried to find the app in garmindevice.xml but couldn't find it (that's when I posted that comment)
Interesting. So I guess installing from the store again fixed it.
I expected them to be kept there if they were there previously because the same app was already there from the store. Now I know this isn't the case.
You don't need to see them on the watch. Use CIQ Mobile or GE and uninstall them that way. When you then sideload "MyPrg.prg" that will be the name for the stuff in data, settings, and the name for the txt file..
Use CIQ Mobile or GE and uninstall them that way.
The Connect IQ store app currently has a bug which prevents you from deleting sideloaded apps. You can only view them.
Currently, Garmin Express is required to delete sideloaded apps. At one point people were complaining that connecting your watch to Garmin Express causes glances to be rearranged, but when I tried it just now (with v7.20.3.0) it didn't happen. Either they fixed the bug or I was lucky.
When you then sideload "MyPrg.prg" that will be the name for the stuff in data, settings, and the name for the txt file..
I think that's been established but one problem (from my pov) is that it's seemingly impossible to determine the filename of an old sideload if you don't remember or didn't make a note of it somehow. (Obviously I'm assuming that the original PRG is unavailable for some reason. Perhaps someone renamed the PRG to something unique before sideloading, but they no longer have a copy of it.)
Imagine sideloading something for personal use and going back to it months or years later. Or suppose you're a user that got a test version from a dev.
I realize it's a very unusual scenario (forgetting the name of your sideload, not being able to sideload a new version, but still somehow caring about the name of the existing sideload), but it's not impossible.
I created a tool to get the filename from GarminDevice.xml:
forums.garmin.com/.../developer-tool-list-apps-py-to-parse-garmindevice-xml