从Android应用程序列表中隐藏应用程序
问题描述:
有什么方法可以隐藏Android应用程序列表中的应用程序图标?应用程序应该从Market下载并打开一些GUI来配置我的应用程序。我不想在应用程序列表中看到我的应用程序的任何图标。用户不应该能够运行它。从Android应用程序列表中隐藏应用程序
通过我知道一些方法方式: 从清单类别android:name="android.intent.category.LAUNCHER"
删除此行,但它不是为我工作,因为没有显示GUI。
非常感谢!
答
删除启动程序类别是正确的。
尝试添加android.intent.category.DEFAULT到意图过滤器以便能够调用活动。
答
感谢您的重播。 我找到了一种从应用程序列表中隐藏应用程序图标的方法;
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
但在应用程序重新安装时发生错误“活动类不存在”,它是不可能而不卸载重新安装应用程序。 .... 有什么问题 ?
还有Launcher Pro的变种。但这是一个应用程序。我的应用程序应该从Android Market下载,并不保证所有用户都有Launcher Pro。 我希望以编程方式从应用程序列表中隐藏应用程序图标。 PackageManager的方法适用于我......但是重装有问题。当您想要从市场更新应用程序时,这很重要。
答
我找到了一种方法,当你重新安装应用程序时,这个工作。
添加具有意图过滤器动作的广播接收器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>
我现在有同样的要求。如果您找到解决方案,请分享它。 – png 2012-04-30 11:30:53