Android如何以编程方式隐藏启动器图标

use*_*351 45 icons android launcher

我的应用程序只需要运行一次.因此,我想在第一次运行后隐藏启动器中的图标,但不卸载应用程序.

我见过类似的应用程序 - 他们可以从启动器应用程序列表中删除自己的图标.我怎样才能达到相同的效果?谢谢.

Kuf*_*ffs 65

PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)

请注意,在下次重新启动之前,图标可能不会消失.

  • OP,请接受其中一个答案,因为它们似乎可以解决您的问题 (4认同)
  • 当我这样做并尝试重新安装我的应用程序时,它无法正常工作.它说活动(被拆散的人)不存在.你能帮忙解决一下如何处理它 (3认同)

Sah*_*yed 12

使用以下代码隐藏应用程序的图标

PackageManager pkg=this.getPackageManager();
pkg.setComponentEnabledSetting(new ComponentName(this,SplashActivity.class),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                        PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)

//在声明为的最明显的文件中首次打开的活动 <category android:name="android.intent.category.LAUNCHER" />

以下是如何恢复应用程序的图标

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this,SplashActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)


G00*_*0fY 9

在 Android Q (API 29) 中,Google 更改了启动器图标可见性行为。即使您禁用 Launcher Activity 或从所有Activity 中完全删除 android.intent.category.LAUNCHER <intent-filter>,该应用程序也会出现在启动器中并打开 Android 操作系统应用程序设置,但以下情况除外:

  • 未在其各自的清单文件中声明任何权限的包
  • 系统应用
  • 在各自清单的标签中不包含任何组件的应用