Android:从跳板中删除图标并从其他应用程序启动此应用程序

时间:2013-07-09 03:44:13

标签: android

如何从跳板中删除应用程序图标但我不想卸载,只需从跳板中删除图标,此应用程序将从另一个应用程序启动。简单来说,我想制作另一个这样的跳板并从那里开始应用程序,而不是从其他任何地方。这可能吗?

2 个答案:

答案 0 :(得分:0)

在应用程序的AndroidMainfest.xml中,删除您不想使用启动器的活动的以下行。

<category android:name="android.intent.category.LAUNCHER" />

并将android.intent.action.MAIN操作更改为特定于应用的内容

<action android:name="android.intent.action.MAIN" />

例如,可以将其更改为下方以表示自定义意图操作:

<action android:name="com.example.action.MAIN" />

现在,您应该可以使用以下内容从其他应用程序启动此应用程序:

    Intent intent = new Intent("com.example.action.MAIN");
    currentActivity.startActivity(intent);

此处有更多信息:http://developer.android.com/guide/components/intents-filters.html

答案 1 :(得分:0)

要从跳板移除应用程序,您可以尝试:

  PackageManager packageManager = context.getPackageManager();
    ComponentName componentName = new ComponentName(context,LauncherActivity.class);
    packageManager.setComponentEnabledSetting(componentName,     
    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

现在从另一个应用程序启动您的应用程序,您可以执行以下步骤:

1.使用action = MAIN和category = LAUNCHER

创建一个intent

2.使用context.getPackageManager

从当前上下文获取PackageManager

3.packageManager.queryIntentActivity(,0)其中intent具有category = LAUNCHER,action = MAIN或packageManager.resolveActivity(,0)以获取main / launcher的第一个活动

4.获取您感兴趣的ActivityInfo

5.从ActivityInfo获取packageName和name

6.最后,使用category = LAUNCHER,action = MAIN,componentName = new ComponentName(packageName,name)和setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)创建另一个intent

7.最后,context.startActivity(newIntent)