安装时在主屏幕上创建应用ShortCut并打开它的最后一个屏幕

时间:2015-05-27 11:39:18

标签: java android shortcut

我正在尝试在安装应用时创建ShortCut。我正在使用以下代码

Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
    shortcutintent.putExtra("duplicate", false);
    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.iconname));
    Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.appicon);
    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
    shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), DashActivity.class));
    sendBroadcast(shortcutintent);enter code here

但在此,它始终打开DashActivity。让我说我正在使用应用程序和应用程序在c活动及其在bacgkground运行现在当我点击快捷方式它打开DashActivity而不是开放哪个活动即c

3 个答案:

答案 0 :(得分:0)

正确的方法是从主屏幕中侦听快捷方式请求 - 在您的清单中使用类似意图的过滤器:

<activity android:name=".ShortCutActivity" android:label="@string/shortcut_label">
  <intent-filter>
    <action android:name="android.intent.action.CREATE_SHORTCUT" />
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

然后,在接收意图的活动中,您为快捷方式创建一个意图并将其作为活动结果返回。

// create shortcut if requested
ShortcutIconResource icon =
    Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);

Intent intent = new Intent();

Intent launchIntent = new Intent(this,ActivityToLaunch.class);

intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launchIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, someNickname());
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

setResult(RESULT_OK, intent);

答案 1 :(得分:0)

它在这一行打开DashActivity becoz提供打开它。  shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,new Intent(getApplicationContext(),DashActivity.class));

使用您想要打开的自己的Activity更改此Activity的名称。 希望这有助于。

答案 2 :(得分:0)

来自shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext(), DashActivity.class));  删除DashActivity.class并提供您的应用程序启动器活动名称...以便它可以按预期工作。