在Android中以编程方式从启动器中移除应用程序

18

是否有一种方法可以在运行时从主屏幕启动器中删除一个活动?我的意思是从其属性中移除Intent.CATEGORY_LAUNCHER或类似的内容。

2个回答

12
您可以通过使用PackageManager#setComponentEnabledSetting()禁用组件,这将使其从启动器中删除。

2
如果您稍后重新安装应用程序,这将如何运作?因为您已经停用了它,所以没有问题吗? - Vidar Vestnes
2
我试过了,它能够正常运行,但是为了让图标消失,必须重新启动启动器。你知道如何刷新启动器图标吗? - Randy Sugianto 'Yuku'
据我所知,没有办法刷新启动器图标。但是,任何启动器重新加载事件,例如更改语言设置,都可以实现它。 - Jose_GD

1

实际上从安卓10版本开始,隐藏应用启动器图标相当困难。我已经使用了以下代码 -

val packageManager = packageManager

                **// disable the app launcher icon**
                val componentName = ComponentName(
                    this,
                    MainActivity::class.java
                )
                packageManager.setComponentEnabledSetting(
                    componentName,
                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                    PackageManager.DONT_KILL_APP
                )

               **// enable the app launcher icon**
                val componentName = ComponentName(
                    this,
                    MainActivity::class.java
                )

                packageManager.setComponentEnabledSetting(
                    componentName,
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                    PackageManager.DONT_KILL_APP
                )

当禁用代码运行时,它只会使应用程序启动器图标被禁用而不是隐藏。但您无法启动它,当单击启动器图标时,它会打开应用程序信息设置页面。
另一种方法-这是另一种方法,制作一个应用程序并在设备所有者模式下运行它。然后我们就可以隐藏/删除应用程序启动器图标。
访问链接- https://www.sisik.eu/blog/android/dev-admin/uninstalling-and-disabling-apps

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接