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

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

【问题讨论】:

    标签: java android android-manifest


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2017-02-22
      相关资源
      最近更新 更多