I'm developing an application that should add it's shortcut to home screen after installation and remove it after the application is being uninstalled. The application will be preinstalled on the end user device, but still should have an option for uninstall). The task looks very simple but I've faced lots of troubles implementing it.
What I have done:
- Add shortcut to the home screen using com.android.launcher.action.INSTALL_SHORTCUT on app first launch or on newt device reboot.
- MANUALY remove shortcut using com.android.launcher.action.UNINSTALL_SHORTCUT.
What I can't (and almost giving up):
- Automaticaly remove the shortcut when the application is being uninstalled.
There's not way to use Intent.ACTION_PACKAGE_REMOVED because the application being uninstalled does not receive this intent. I performed some tests and found out that the only shortcut type that is being removed with the application is the shortcut that is created from menu 'Add to home screen => Shortcuts => Applications => Application activity'. The shortcuts that are being created programatically or that are declared in AndroidManifest remain on home screen after the app is uninstalled.
There's almost none docs and posts on forums about this topic and I'm confused a little bit why such a simple operation that doesn't contradict with the Android security policy could not be implemented in a straight way.
Is there any way to ask OS to remove the corresponding shortcut on application uninstall? Can I catch the event that the application is being uninstalled before it is removed?