What is the recommended method, i.e.: broadcast, to start an app after booting?
The usual android.intent.action.BOOT_COMPLETED doesn't work, as the PackageManger/ActivityManager fires off of that as well, and likes to uninstall-reinstall CUCM pushed apps. Triggering off of BOOT_COMPLETED does start the app, but it is immediately killed and re-installed.
What is the recommended method to start an app after an update has been pushed by CUCM? When an app is update, or a device is added to a subscription, the app is correctly installed, but no notification is given to the app.
Can you post a picture of your push configuration for the app? Here's an example of what I'm looking for:
Same as yours, but no Service Version specified, and one parameter specified.
In general, the CUCM functionality works and I'm able to deploy the app out to a variety of phones.
Okay, that's your problem (no Service Version specified). It should be set to the version set in your Android Manifest xml file. If you leave this blank, CUCM will push the app to the phone over and over again at every boot. If you set the version correctly, CUCM will say, "Hey, this app is already on the phone, and it's the latest version, so I don't need to push it."
I purposefully left that blank, as described in the DX Admin guide, so that the phone will always grab the latest version on reboot and/or config updates.
Regardless, the problem still exists even with versioning. If the version number changes, it will be replaced on boot or when the subscription is updated and the app is updated.
I'm still looking for a broadcast or other method to trigger to detect the app has been replaced.
Not sure how I missed this one before, but the android.intent.action.MY_PACKAGE_REPLACED broadcast does work correctly after a CUCM update.
I would like to add a feature request, however.
CUCM and the CiscoPackageManager need an option for the user to specify that the app should run on initial install. This will allow administrators to push out apps remotely and allow the apps to configure themselves without user intervention.
Without this, users much run the app once on initial install.