我正在尝试在安装应用时创建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
答案 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
并提供您的应用程序启动器活动名称...以便它可以按预期工作。