有没有办法隐藏Android应用程序列表中的应用程序图标?应该从Market下载该应用程序并打开一些GUI来配置我的应用程序。我不想在应用程序列表中看到我的应用程序的任何图标。用户不应该运行它。
顺便说一下我知道的方式:
从清单类别android:name="android.intent.category.LAUNCHER"
但它对我不起作用,因为没有显示GUI。
非常感谢!
答案 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>