从Android应用程序列表中隐藏应用程序

时间:2010-11-01 08:50:17

标签: android

有没有办法隐藏Android应用程序列表中的应用程序图标?应该从Market下载该应用程序并打开一些GUI来配置我的应用程序。我不想在应用程序列表中看到我的应用程序的任何图标。用户不应该运行它。

顺便说一下我知道的方式: 从清单类别android:name="android.intent.category.LAUNCHER"

中删除此行

但它对我不起作用,因为没有显示GUI。

非常感谢!

3 个答案:

答案 0 :(得分:4)

删除启动器类别是正确的。

尝试将android.intent.category.DEFAULT添加到intent过滤器以便能够调用该活动。

答案 1 :(得分:2)

感谢重播。 我找到了一种从应用程序列表中隐藏应用程序图标的方法;

PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

但是在应用程序重新安装时发生错误“活动类不存在”,并且无法在不卸载的情况下重新安装应用程序。 .... 有什么问题 ?

还有Launcher Pro的变体。但这是一个应用程序。我的应用应该从Android电子市场下载,并且无法保证所有用户都拥有Launcher Pro。 我想以编程方式从应用程序列表隐藏应用程序图标使用PackageManager的方法适用于我...但是重新安装存在问题。当您想要从Market更新应用程序时,这很重要。

答案 2 :(得分:0)

我在重新安装应用时找到了一种方法。

使用意图过滤器操作 android.intent.action.PACKAGE_ADDED 添加广播接收器。

在onReceived方法中,您必须激活已禁用的组件:

ComponentName componentToEnable = new ComponentName(context, Your_disabled_class.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(componentToEnable, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,                           PackageManager.DONT_KILL_APP);

完成接收器的AndroidManifest.xml:

<receiver android:name="PackageChangeReceiver">

<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>

<data android:scheme="package"/>

</intent-filter>
</receiver>