2010-11-01 148 views
9

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

通过我知道一些方法方式: 从清单类别android:name="android.intent.category.LAUNCHER"

删除此行,但它不是为我工作,因为没有显示GUI。

非常感谢!

回答

4

删除启动程序类别是正确的。

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

2

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

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

但在应用程序重新安装时发生错误“活动类不存在”,它是不可能而不卸载重新安装应用程序。 .... 有什么问题 ?

还有Launcher Pro的变种。但这是一个应用程序。我的应用程序应该从Android Market下载,并不保证所有用户都有Launcher Pro。 我希望以编程方式从应用程序列表中隐藏应用程序图标。 PackageManager的方法适用于我......但是重装有问题。当您想要从市场更新应用程序时,这很重要。

+0

我现在有同样的要求。如果您找到解决方案,请分享它。 – png 2012-04-30 11:30:53

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>