无法启动快捷方式:您的手机上未安装应用程序
-
26-09-2019 - |
题
我正在尝试为我的 Android 活动之一创建桌面快捷方式。我使用的代码适用于我读过的每个 tuto 示例:
final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
ComponentName name = new ComponentName(getPackageName(), ".MyActivity");
shortcutIntent.setComponent(name);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "blabla");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
finish();
我将主要操作添加到我的活动中:
<activity android:label="@string/app_name" android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
结果是应用程序不想启动!
在 Logcat 中一切看起来都很好:
10-01 01:17:51.591: INFO/ActivityManager(2424): Starting activity: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.package.name/.MyActivity bnds=[125,384][235,522] (has extras) }
主页告诉我该应用程序尚未安装。
请帮助我,我完全迷失了,花了几个小时尝试解决问题并阅读我能得到的所有信息。
非常感谢!
解决方案
尝试这个:
- 摆脱
<intent-filter>
- 摆脱
ACTION_MAIN
只需使用new Intent(this, MyActivity.class)
- 将 android:exported="true" 添加到清单中的元素中
其他提示
这可以,如果你有你的活动在AndroidManifest.xml中声明了两次,第一次发生作为发射器,然后就可以声明如下:
<activity android:name=".MyActivity" />
不隶属于 StackOverflow