智能手机
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
利用手机提供的全部多模式功能(包括语音和视觉功能),帮助用户随时随地处理各种事务。
模态
对于配有屏幕的移动设备,您的 Action 需要支持两种模态:
请注意,在 Action 中,用户可在这些模式之间自由切换。请务必专门针对每种模态设计丰富响应。例如,使用键盘调用时,如果 SSML 中提供了声音,则不会播放声音。如果响应依赖于用户听到的声音,并且设备使用的是键盘模式,那么您的 Action 需要描述播放的声音类型。
如需检测智能手机上的屏幕和输入模式是否可用,您可以使用以下代码:
- 带有屏幕:
if (conv.screen)
- 使用语音模式:
if (conv.input.type === 'VOICE')
- 使用键盘模态:
if (conv.input.type === 'KEYBOARD')
提示和最佳做法

试试以下操作
试用此示例
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\u003cp\u003eBuild Actions that enable users to accomplish tasks on their mobile devices using voice and visual interactions.\u003c/p\u003e\n"],["\u003cp\u003eSupport both voice and keyboard invocation methods, tailoring responses appropriately for each modality.\u003c/p\u003e\n"],["\u003cp\u003eEnhance the user experience with rich responses, push notifications, and concise conversational flows.\u003c/p\u003e\n"],["\u003cp\u003eLeverage deep links to seamlessly integrate your Action with other platforms like websites and apps.\u003c/p\u003e\n"]]],["Actions on mobile devices should support both voice and keyboard input. Developers can detect screen availability and input modality using `conv.screen` and `conv.input.type` respectively. When using keyboard input, sounds should be described in text instead of played. Rich responses and theme customization enhance screen usage, while push notifications and deep links maintain user engagement. Prioritize quick task completion and intuitive conversational flows, considering the user is on the go.\n"],null,["# Smartphones\n\nHelp users get things done while they're on-the-go, using the full multimodal\ncapabilities available on phones, including both voice and visuals.\n\nModalities\n----------\n\nFor mobile devices which have screens, your Action needs to support two modalities:\n\n- Voice invocation\n- Keyboard invocation\n\nNote that users are free to move between these modalities within an Action. Make\nsure to design your rich responses specifically for each of these\nmodalities. For example, with keyboard invocation, no sounds are played if they\nare provided in [SSML](/assistant/conversational/df-asdk/ssml). If the response relies on the user hearing a sound and\nthe device is using keyboard modality, your Action needs to describe what kind\nsound of sound is played.\n\nTo detect the availability of a screen and the [input modality](/assistant/conversational/webhook/reference/rest/Shared.Types/InputType) on a smartphone, you can use the following code:\n\n- **Has screen** : `if (conv.screen)`\n- **Uses voice modality** : `if (conv.input.type === 'VOICE')`\n- **Uses keyboard modality** : `if (conv.input.type === 'KEYBOARD')`\n\nTips \\& best practices\n----------------------\n\n- Use [rich responses](/assistant/conversational/df-asdk/rich-responses) and [theme customization](/assistant/conversational/df-asdk/rich-responses#customizing_your_responses) to make the most out of the screen.\n- Consider using [push notifications](/assistant/engagement/notifications) to keep users engaged on mobile devices.\n- Remember that the user is on the go and try to help them achieve their task as quickly as possible. To learn how to craft natural and intuitive conversational flows, see the [conversation design guide](/assistant/conversational/df-asdk/design).\n- [Deep link directly to your Action](/assistant/engagement/assistant-links) from your website, mobile app, or social media for experiences better handled via voice.\n\nTry these Actions\n-----------------\n\n- [Starbucks](//assistant.google.com/services/a/uid/000000f2fb2c47e0?jsmode)\n- [SpotHero](//assistant.google.com/services/a/uid/00000031e1da95c6?jsmode)\n- [My Storytime](//assistant.google.com/services/a/id/6ebb0e742351c0dd?jsmode)\n\nTry this sample\n---------------\n\n- [Dialogflow conversation components sample](//github.com/actions-on-google/dialogflow-conversation-components-nodejs)"]]