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

Posted

技术标签:

【中文标题】在 Android 中以编程方式从启动器中删除应用程序【英文标题】:Remove application from launcher programmatically in Android 【发布时间】:2010-11-01 15:46:06 【问题描述】:

有没有办法在运行时从主启动器中删除活动?我的意思是从其属性或类似的东西中删除Intent.CATEGORY_LAUNCHER

【问题讨论】:

【参考方案1】:

您可以通过PackageManager#setComponentEnabledSetting() 禁用组件,这将具有将其从启动器中删除的效果。

【讨论】:

如果您稍后重新安装您的应用程序,这将如何工作。禁用了就没问题吗? 我试过了,它可以工作,但我需要重新启动启动器才能使图标消失。你知道如何刷新启动器图标吗? @yuku AFAIK,无法刷新启动器图标。但是,任何启动器重新加载事件,例如更改语言设置,都会这样做【参考方案2】:

实际上从 android 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

【讨论】:

以上是关于在 Android 中以编程方式从启动器中删除应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中以编程方式从收件箱中删除所有短信?

如何在 Android 中以编程方式更改应用程序图标?

如何在 android 中以编程方式在小米手机安全应用程序中为我的应用程序启用自动启动选项

Android - 如何在小米设备中以编程方式启用自动启动选项?

在 Android 2.2 中以编程方式启动“添加帐户”活动

在 Android Studio 中以编程方式从应用程序触发系统的暗模式