我正在开发一个应用程序,它应该在安装后将其快捷方式添加到主屏幕,并在卸载应用程序后将其删除。该应用程序将预安装在最终用户设备上,但仍应具有卸载选项)。这个任务看起来很简单,但我在实现它时遇到了很多麻烦。
我做了什么:
- 在应用首次启动或 newt 设备重启时使用 com.android.launcher.action.INSTALL_SHORTCUT 将快捷方式添加到主屏幕。
- 使用 com.android.launcher.action.UNINSTALL_SHORTCUT 手动删除快捷方式。
我不能(几乎放弃):
- 卸载应用程序时自动删除快捷方式。
无法使用 Intent.ACTION_PACKAGE_REMOVED 因为正在卸载的应用程序没有收到此意图。我进行了一些测试,发现与应用程序一起删除的唯一快捷方式类型是从菜单“添加到主屏幕 => 快捷方式 => 应用程序 => 应用程序活动”创建的快捷方式。以编程方式创建或在 AndroidManifest 中声明的快捷方式在应用程序卸载后仍保留在主屏幕上。
论坛上几乎没有关于这个主题的文档和帖子,我有点困惑,为什么不能直接实施这样一个与 Android 安全策略不冲突的简单操作。
有没有办法让操作系统在应用程序卸载时删除相应的快捷方式?我可以捕捉到应用程序在被删除之前被卸载的事件吗?