我的应用程序只需运行一次。因此,我希望在第一次运行后隐藏启动器中的图标,但不卸载该应用程序。
我看过类似的应用程序-它们可以从启动器应用程序列表中删除自己的图标。我该如何实现相同的结果?谢谢。
我的应用程序只需运行一次。因此,我希望在第一次运行后隐藏启动器中的图标,但不卸载该应用程序。
我看过类似的应用程序-它们可以从启动器应用程序列表中删除自己的图标。我该如何实现相同的结果?谢谢。
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
请注意,在下一次重启之前,图标可能仍然存在。
使用下面的代码隐藏应用程序图标
PackageManager pkg=this.getPackageManager();
pkg.setComponentEnabledSetting(new ComponentName(this,SplashActivity.class),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
// 在manifest文件中第一次声明为<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);
随着Android Q(API 29),谷歌改变了启动器图标的可见性。即使禁用启动器活动或从所有活动中完全删除 android.intent.category.LAUNCHER <intent-filter>
,该应用程序仍将出现在启动器中并打开Android操作系统应用程序设置,但有以下例外:
使用以下代码隐藏应用程序图标:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); // activity which is first time open in manifiest file which is declare as <category android:name="android.intent.category.LAUNCHER" />
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
注意:这不适用于Android 10