安卓7.1静态应用程序快捷方式创建器能将extras放入意图中吗?

5
这是一个简短的问题:
Android Nougat 7.1有一个新功能,可以通过显示菜单创建应用程序快捷方式: https://developer.android.com/about/versions/nougat/android-7.1.html https://developer.android.com/guide/topics/ui/shortcuts.html 从我所看到的,如果您使用动态快捷方式,您可以将任何您想要的内容放入其中,但是静态快捷方式(通过XML预先确定的)是否可以在其中包含额外的内容? 也就是说:我可以在快捷方式意图的bundle中放置一个字符串吗?还是只能选择它们每个的操作?
我之所以问这个问题是因为我没有在文档中看到相关提及。

我不确定有关于<intent>元素中可以放入的所有内容的文档(例如,首选项XML)是否存在。 - CommonsWare
@CommonsWare 这就是我问的原因。我找不到关于它的信息。我希望它是可能的,因为这会给予更多的灵活性。 - android developer
1个回答

14

根据R.styleable#Intent, 可以在XML中声明一个Intent对象。此外,可能会包括零个或多个<categories><extra>标签。

可以在Intent.parseIntent源代码中看到解析Intent的过程。在那里,您将看到它使用Resources.parseBundleExtra()解析extra标签,该方法支持字符串、布尔值、整数和浮点数。

<intent android:action="YOUR_ACTION" >
     <extra android:name="extra_name" android:value="extra_value" />
</intent>

我刚刚查看了ShortcutParser源代码,并从那里开始跟踪。 - ianhanniballake
似乎工作得很好。你知道关于应用程序快捷方式的其他有趣事情吗?例如,“shortcutDisabledMessage”何时使用?如果我放置多个静态应用程序快捷方式,为什么它们会以相反的顺序显示? - android developer
顺序与启动图标相关。声明的第一个快捷方式将始终出现在启动图标旁边。如果快捷列表出现在您的启动图标上方,则首个声明的快捷方式将出现在列表底部,如果快捷列表出现在您的启动图标下方,则首个声明的快捷方式将位于列表顶部。希望能对您有所帮助! - Jonathan Aste
1
@JonathanAste - 不一定。启动器可以按任何顺序显示它们,尽管应该尝试按其等级对它们进行排序,并且通常通过使用定义的顺序来打破关系,但它们也可以按字母顺序排序等方式。 - ianhanniballake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接