如何在运行时隐藏Android Launcher图标,同时保持应用程序的可升级性

如何在运行时隐藏Android Launcher图标,同时保持应用程序的可升级性,android,icons,runtime,hide,launcher,Android,Icons,Runtime,Hide,Launcher,我在其他答案中看到了该代码: PackageManager pm = getApplicationContext().getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 此代码确实有效,但如果您尝试重新安装或升级应用程序,则无法启动已禁用的活动

我在其他答案中看到了该代码:

PackageManager pm = getApplicationContext().getPackageManager(); 
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
此代码确实有效,但如果您尝试重新安装或升级应用程序,则无法启动已禁用的活动

有没有其他方法可以在运行时隐藏图标而不丢失重新安装和升级的功能


有人知道吗?

您在安装时遇到的问题是因为上面的代码禁用了标记为main和launcher的唯一导出组件活动。您可以添加一些其他导出组件以返回到应用程序中,例如为GCM或SMS接收注册广播接收器。需要采用类似的方法从play store重新启用更新,甚至从eclipse安装。不幸的是,我不确定需要为这两者添加什么组件。
Workaround:您可以向用户发送GCM广播,并在推送更新之前重新启用启动器组件,但我认为可能有更好的方法。

正在寻找相同的解决方案