无法从Android菜单隐藏应用程序图标?

时间:2011-07-21 18:33:06

标签: android

我还想要从我的应用程序(X)开始安装第三方应用程序(比如应用程序Y),我不希望在Android主菜单上创建应用程序Y图标。< / p>

我已经尝试了下面的代码,但在App Y安装成功后,仍然会在主菜单中创建应用Y的图标。请记住,我无法更改App Y的清单,因为它是第三方应用程序。

我也尝试了关于以下链接的建议,但他们没有解决我的问题:

How to hide application icon from the Android Desktop? ++++++++++

File file = new File("/sdcard/MyApps/App Y.apk");

Intent intent = new Intent();
Uri uri = Uri.fromFile(file);

intent.setAction(android.content.Intent.ACTION_VIEW);

intent.removeCategory("android.intent.category.LAUNCHER");

intent.setDataAndType(Uri.parse(uri.toString()),
"application/vnd.android.package-archive");

startActivity(intent);

++++++++++

请告诉我您的建议/意见。

由于

6 个答案:

答案 0 :(得分:3)

执行此操作的唯一方法是删除程序包的AndroidManifest.xml文件中定义的IntentFilter:作为第三方安装程序无法执行此操作。

答案 1 :(得分:1)

在大多数情况下,答案是肯定的,你不能......

取决于“App Y”是什么类型的应用程序。对于例如如果App Y是一个库,它将包含在您的应用程序中。 Android网站上有一些示例应用程序可用; “软键盘”

http://developer.android.com/resources/samples/SoftKeyboard/index.html

这些实际上是“服务”,未作为应用程序安装。如果App Y是一个“普通”应用程序,它将自行安装,因为这是Android的行为。

亲切的问候和进一步发展的好运。

答案 2 :(得分:0)

你只是在修改你的意图。我认为不可能完成你想要完成的任务。为什么不让用户自己启动其他应用程序?

答案 3 :(得分:0)

// Hide Application Icon 

try{
    PackageManager p = getPackageManager();
    p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}catch (Exception e) {
    e.printStackTrace();
}


// UnHide Application Icon


PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName("com.example.removeicon","com.example.removeicon.LauncherActivity");
                    p.setComponentEnabledSetting(componentName , PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

答案 4 :(得分:0)

是的,您可以隐藏您的应用程序图标,但仅限于root设备或系统签名的应用程序......解决方案是首先使用shell命令 pm disable com.yourapppackagename 禁用您的应用程序,然后使用 pm enable com.yourapppackagename 启用它,这将首先禁用您的应用程序从设备中删除应用程序图标,然后启用您的应用程序将仅在设备菜单中而不是在主屏幕上恢复应用程序图标。 如果你不想在设备的任何地方使用你的应用程序图标,那么就不要启用它,但是你的应用程序现在不会被用作隐藏状态,直到你启用它才能使用它。

答案 5 :(得分:-1)

你可以诈唬只是创建一个0不透明和最小可能尺寸的图像,然后用户将无法看到该应用程序。