加入语音处理能力(Adding Voice Capabilities)

语音操作为用户体验可穿戴的重要组成部分,它允许用户快速、免提方式来运行操作。

Wear它提供了两种类型的语音操作的:

该系统提供(System-provided)
这些语音操作是基于任务的,且内置于Wear平台。
语音命令到达时。在你想启动的活动(Activity)中进行动作过滤。

比方“记一下”(Take a note)或“提醒一下”(Set an alarm)。
应用提供(App-provided)
这些语音操作是基于APP的,声明方式和启动图标一样。

用户说“開始”(Start)来使用这些语音操作以及一个你指定的活动。

声明系统提供的语音操作

Android Wear平台提供了一些基于用户动作的语音意图(voice intents)。比方上述“记一下”或“提醒一下”。
这让用户仅仅须要说出自己想要做的操作。而由系统来确定该启动哪个活动来响应。
当用户发出语音指令时,你的应用程序能够对此意图进行侦听和过滤。这样合适的应用将被该语音意图(intent)所启动。
假设你想启动一个后台服务。以可见提示的方式显示一个活动,然后在活动启动服务。

当你想摆脱这个可见提示时。确保调用finish()函数。
比方,对于"Take a note"命令,声明例如以下的意图过滤器(intent filter)来启动一个名叫MyNoteActivity的活动:
  <activity android:name="MyNoteActivity">
      <intent-filter>
          <action android:name="android.intent.action.SEND" />
          <category android:name="com.google.android.voicesearch.SELF_NOTE" />
      </intent-filter>
  </activity>
以下是Wear平台所支持的语音意图(voice intents)列表:

声明应用提供的语音操作

假设上述系统语音意图都不能满足你的要求,你能够用“Start MyActivityName”的语音指令来直接启动你的应用。
注冊一个“Start”操作和在手机应用上注冊一个启动图标相似。
想指定“Start”命令后面的文本參数。须要给对应活动指定一个label属性。

比方,以下这个意图过滤器将识别"Start MyRunningApp"语音操作并启动StartRunActivity。
<application>
  <activity android:name="StartRunActivity" android:label="MyRunningApp">
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
  </activity>
</application>

获取Free-form语音输入

为了能使用语音操作来启动活动,你还能够调用系统内置的语音识别活动(Speech Recognizer activity)来获取用户的语音输入。

这对于语音识别和兴许处理是有帮助的,比方运行一个搜索或者发送语音消息。
在应用中,你能够使用ACTION_RECOGNIZE_SPEECH动作来调用startActivityForResult()函数。 

这将启动该活动并能够在onActivityResult()中处理语音识别结果。

參考链接:

Android Wear中国的官方网站上镜

by iefreer

Android:创建耐磨应用 - 语音操作的更多相关文章

  1. Android 创建内容提供器(ContentResolver)

    如果想实现跨程序共享数据的功能,官方推荐的方式就是使用内容提供器,可以通过新建一个类去继承 ContentResolver 的方式来创建一个自己的内容提供器. ContentProvider 类中有六 ...

  2. Android学习四:数据库操作

    1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...

  3. android: 创建自己的内容提供器

    我们学习了如何在自己的程序中访问其他应用程序的数据.总体来说思 路还是非常简单的,只需要获取到该应用程序的内容 URI,然后借助 ContentResolver 进行CRUD 操作就可以了.可是你有没 ...

  4. [ 转]Android快速开发–使用ORMLite操作数据库

    OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来 ...

  5. android 创建 xml文件

    android创建xml文件的方法. 要操作android的外部存储,所以要在AndroidManifest.xml文件中添加权限. <uses-permission android:name= ...

  6. Android学习记录(2)—Android中数据库的常见操作

    android中数据库操作是非常常见了,我们会经常用到,操作的方法也有很多种形式,这里我就把最常见的两种形式记录下来了,以备以后用到方便查看.我就不写注释和解释了,因为android数据库的操作和其它 ...

  7. Android Bitmap 载入与像素操作

    Android Bitmap 载入与像素操作 一:载入与像素读写 在Android SDK中,图像的像素读写能够通过getPixel与setPixel两个Bitmap的API实现. Bitmap AP ...

  8. [Android]通过JNI访问并操作Bitmap的元素,支持RGB565和ARGB8888

    [Android]通过JNI访问并操作Bitmap的元素,支持RGB565和ARGB8888 标签: androidbitmapjni 2014-05-09 20:35 2985人阅读 评论(1) 收 ...

  9. iOS Storyboard创建APP 的国际化操作

    Storyboard创建APP 的国际化操作 最近在看<X-code江湖录>这本书,看到了APP 国际化这点,刚刚也简单的实践了一下.现在和大家分享分享! 写的这个简单的Demo全都是用 ...

随机推荐

  1. POJ 1703:Find them, Catch them(并用正确的设置检查)

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 30702   Accepted: ...

  2. SE 2014年4月14日

    一. 概述BGP的特点 BGP协议是一种距离矢量协议,基于TCP的179端口,BGP协议不会动态的学习路由,只能将IGP协议学习到的或者静态路由注入到BGP中,成为BGP路由,BGP路由携带有丰富的路 ...

  3. OpenCV 通过 MFC 的 Picture Control 控件操作图像

    假设希望对显示在MFC Picture Control 控件里的图像进行操作,比方画线画点之类的,能够利用 OpenCV 结合 MFC 本身的鼠标响应函数来实现. 怎样将图像显示到 Picture C ...

  4. hdu 4961 Boring Sum(数学题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4961 Problem Description Number theory is interesting ...

  5. c++进阶

    对网络编程/多线程/系统编程有一定了解:4:对ngnix,redis,memcache有一定了解:5:有高并发服务开发经验优先: 因为C/C++在嵌入式.移动互联网.物联网有很大的优势,有很多人就靠一 ...

  6. APUE学习--网络编程(3)

    本篇文章介绍TCP通信. 上文提到传输层的两个协议TCP和UDP,UDP是无连接的已经介绍过,TCP是面向连接的,阐述建立连接和断开连接前先来看下TCP报文头的结构. 报文头在linux的定义在/us ...

  7. 官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe。封装好了Qt libraries、Qt Creator。只需要这一个可执行程序就好了。

    官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe( http://qt-project.org/downloads).这个可执行程序已经为 ...

  8. ReactNavtive框架教程(2)

    , alignItems: 'center' } }); 标准的 CSS 属性.尽管用CSS比在IB设置UI样式的可视化要差.但总比在viewDidLoad()方法中用代码写要好一些. 然后增加下面代 ...

  9. 使用psftp.exe

    使用psftp.exe 点击打开psftp.exe,出现如下图的命令窗口.  

  10. leetcode先刷_Binary Tree Level Order Traversal II

    非常easy标题,在后面,我不认为它不是那么简单的回答更多的.我们将编写,没有人啊. 预购在基层上,加上节省每一层,加上从下往上的输出,是一家vector而一个stack那么问题,没有他,但另一方面- ...