AndroidWear官方文档总结06 - 支持语音输入的通知
来源:互联网 发布:淘宝店铺活动玩法 编辑:程序博客网 时间:2024/06/05 07:53
假如手持设备的通知上包含文字输入的功能,例如回复邮件,正常情况下手持设备上会启动一个Activity来输入文字。然而,当通知显示在穿戴设备上时,没有键盘输入,你可以使用RemoteInput让用户口述回复,或者使用提供预定义的文本消息回复。当用户以声音,或者预定义的文本信息作为回答,系统会将答复添加进通知的Intent中,然后在手持设备上打开Intent对应的组件。
创建支持语音输入的RemoteInput.Builder对象添加到通知中,这个类的构造器需要传递一个字符串作为作为语音输入的key,稍后用于检出输入的文字。除允许声音输入外,可以提供5个预定义的文本消息,让用户选择以快速回复。
代码如下:
private static final String EXTRA_VOICE_REPLY = "extra_voice_reply";String[] choices = {"吃过了", "还没吃", "你请我啊", "我要吃麻辣烫"};//EXTRA_VOICE_REPLY 为检出语音输入文本的KeyRemoteInput input = new RemoteInput.Builder(EXTRA_VOICE_REPLY) .setLabel("吃饭了么?") //设置 提问 .setChoices(choices) //设置 预定义文本作为快速回复 .build();
设置语音输入,可以使用addRemoteInput()方法添加RemoteInput对象到Action,让通知支持语音回复。
代码如下:
//创建Intent,用于接收回复Intent actionIntent = new Intent();i.setClass(this, ReplayActivity.class);PendingIntent actionPendingIntent = PendingIntent.getActivity(MainActivity.this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);//创建ActionNotificationCompat.Action actionRemoteInput = new NotificationCompat.Action.Builder(R.drawable.background, "语音回复", actionPendingIntent) .addRemoteInput(input).build();//添加Action到通知builder.extend(new NotificationCompat.WearableExtender() .setBackground(BitmapFactory.decodeResource(getResources() , R.drawable.background)) .addAction(actionRemoteInput));
在回复意图所对应的Activity中接收用户回复,调用getResultsFromIntent()方法,把含有回复内容的Intent传过去,这个方法的返回值是包含回复信息的Bundle对象,根据之前设置的语音输入文本的Key就可以取出所对应的文本内容。
代码如下:
private CharSequence getMessageText(Intent intent) { Bundle remoteInput = RemoteInput.getResultsFromIntent(intent); if (remoteInput != null) { return remoteInput.getCharSequence(EXTRA_VOICE_REPLY); } return null;}
运行效果如下图所示,最开始语音回复,说完语音后,系统会自动语音识别成字符串。或者也可可以选择预先定义好的文本,作为答复。当答复后,系统会显示“Sending”界面,让用户有时间来取消之前的选择。如果“Sending”界面进度完成后,系统会打开Action所对应的Intent,从该Activity的Intent中取出答复的文本。
语音输入的通知
注意:模拟器不支持语音输入,只能键盘输入。所以这个案例的语音功能只能在真机上测试。
- AndroidWear官方文档总结06 - 支持语音输入的通知
- AndroidWear 支持语音输入的通知
- AndroidWear官方文档总结06 - 添加多页面到通知
- AndroidWear官方文档总结07 - 汇总通知
- AndroidWear官方文档总结05 - 手持设备与穿戴设备的通知同步
- AndroidWear官方文档总结01 - 简介
- AndroidWear官方文档总结02 - 开发环境搭建
- AndroidWear官方文档总结04 - 创建Android Wear 项目
- AndroidWear官方文档总结03 - 连接手持设备与穿戴设备模拟器到开发环境
- AndroidWear 汇总通知
- AndroidWear 手持设备与穿戴设备的通知同步
- Android官方文档---支持不同的语言
- Android官方文档---支持不同的屏幕
- 支持通用链接(官方文档的翻译)
- Oracle全球化方面支持的官方文档
- 支持语音输入的文本框(x-webkit-speech)
- 苹果的官方文档中提出的支持的动画
- VMware的官方文档---对网络的支持
- 利用Ant脚本生成war包的详细步骤
- 用CSS使长串英文字符自动换行
- 学习
- 用pelace()函数替换空格和换行
- flash跑马灯中,鼠标指向时的停止效果
- AndroidWear官方文档总结06 - 支持语音输入的通知
- DW中出现:以下翻译器没有被装载,有不正确的设置信息 问题的解决方案
- 网站上增加天气预报的方法
- 转载-Oracle拆分字符串,字符串分割的函数
- javascript实现的图片滚动效果,鼠标放上可停止
- (转)论“有经验”的工程师
- 移动,移出时改变单元格色彩代码!
- 给你的网页加个MSN的即时聊天系统
- 左右方向滚动的图片代码和<marquee>效果有点不同