我更新了 Android Studio 以支持 API 25 并在项目中实现它。我也在寻找不同的资源来找到我的问题的正确答案,但没有运气。首先,我需要说明的是,我使用 Action 和 Nova Launcher 在 Android 6.0.1 上测试了应用程序(但 Google 应用程序正常运行)。
所以,我在 AndroidManifest.xml
中实现了:
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
在 xml
- res
中创建了 shortcuts.xml
。在那里,我输入:
<shortcut
android:shortcutId="sc1"
android:enabled="true"
android:icon="@drawable/ic_kalendar"
android:shortcutShortLabel="@string/shortcut_kalendar"
android:shortcutLongLabel="@string/shortcut_kalendar_long"
android:shortcutDisabledMessage="@string/message_off">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.ips.orto.MainActivity"
android:targetPackage="com.ips.orto" />
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.ips.orto"
android:targetClass="com.ips.orto.kalendar.Kalendar"/>
</shortcut>
<shortcut
android:shortcutId="sc2"
android:enabled="true"
android:icon="@drawable/ic_else"
android:shortcutShortLabel="@string/shortcut_else"
android:shortcutLongLabel="@string/shortcut_else_long"
android:shortcutDisabledMessage="@string/message_off">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.ips.orto.MainActivity"
android:targetPackage="com.ips.orto" />
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.ips.orto"
android:targetClass="com.ips.orto.else.Something"/>
</shortcut>
我尝试删除属性中的 android:
,但仍然无法正常工作。另外,我将 android:exported="true"
添加到 Activity
中指向 Shortcuts
并且我没有创建 shortcuts .xml
在任何特殊的 v- 桶中。
有谁知道我做错了什么?
最佳答案
所以,我终于找到了答案。捕捉非常简单。代码:
<activity ...>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts"/></activity>
表示不仅在Mainfest
的application
部分添加meta
,而且在Activity
中添加meta
在 shortcuts.xml
中创建定义(例如,如果您定义 ThirdActivity
的快捷方式,您将在 中将上述代码添加到该
)。此外,刚刚选择的 Activity 需要这一行:Activity
list
android:exported="true"
然后它在 Action 和 Nova Launcher 以及 Android 7.1 模拟器中都可以正常工作。
关于Android 应用程序快捷方式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40347937/