这个想法是在一个按钮上按下用户语音输入并将其传递给应用程序内部的搜索。由于设备限制,我们使用SearchViewCompat而不是有用的SearchView。我已经能够使用this link获取语音输出,但是没有简单的方法将文本传递到搜索栏。
搜索视图本身显示为一个视图(所以没有setText()),但如果我可以只说“在键盘上使用麦克风键”或者一旦搜索栏出现,我认为它可能工作。任何帮助将不胜感激。
谢谢, SGB。有没有一种方法可以在软键盘上以编程方式启动语音输入?
回答
对不起已经回答了我自己的问题,但在这里它是: 我把整个“抢从声音输入一个字符串数组”关中的问题,然后链接的,而不是刚刚开始搜索与onSearchRequested()
,我做到这一点:
startSearch(grabString, false, null, false);
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(aViaBuildConfig.MIC_KEY) {
DebugLog.e(TAG , "onDown event : " + event);
DebugLog.e(TAG , "onDown keyCode: " + keyCode);
if(keyCode == Constants.MIC_KEY) {
onSearchRequested();
Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
try {
startActivityForResult(voiceIntent, Constants.RESULT_SPEECH);
} catch (ActivityNotFoundException ex) {
DebugLog.e(TAG, "Not found excpetion onKeyDown: " + ex);
}
}
return super.onKeyDown(keyCode, event);
}
return false;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case Constants.RESULT_SPEECH:
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> spokenSearch = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
DebugLog.e("Glenn: " , "Speech = " + spokenSearch);
String grabString = spokenSearch.get(0);
startSearch(grabString, false, null, false);
}
break;
}
}
不,这是不可能的。至少,没有简单方式来启动语音输入,而不使用RecognitionListener
或手动点击软键盘上的语音输入按钮。
据我所知,this post解释了如何将语音集成到实际使用此库的IME中:google-voice-typing-integration。它可能会激励你一点。
嗯,这不是我真正想要的,但这是一些很棒的信息。我可以使用RecognitionListener作为第二个或第三个选项。 – 2013-02-14 15:22:11
您可以创建一个包含按钮的视图来触发语音输入。然后在适当的时候调用它,比如'EditText.OnClickListener'。看看这个问题:http://stackoverflow.com/questions/1896939/android-app-specific-soft-keyboard – 2013-02-14 18:55:17
- 1. Android软键盘没有以编程方式更改
- 2. 有没有一种方法可以调用键盘上的“完成”键?
- 3. 有没有一种方法可以在Web应用程序中以编程方式播放音频?
- 4. 有没有一种方法可以在python中输入文字?
- 5. 以编程方式启用/禁用键盘声音和振动
- 6. 有没有一种方法来以编程方式打开/关闭粘滞键?
- 7. 有没有在iPhone上以编程方式启动Voice Control的方法?
- 8. 有没有一种方法可以在WordPress中以编程方式启用插件的插件?
- 9. 以编程方式在android中的软输入键盘上禁用语音到文本按钮(微型手机)
- 10. 有没有一种方法可以在HTML 5语音输入API中使用语法?
- 11. 有没有办法以编程方式启动Mobile me同步?
- 12. 有没有一种方法可以接收外焦表单的关键输入?
- 13. 有没有一种键盘快捷方式可以在cmder中重新启动当前控制台?
- 14. 在.NET中有没有一种方法可以通过现有的XML文件以编程方式生成DTD?
- 15. 有没有一种方法可以在Linux上使用C++
- 16. 有没有一种方法可以在主要的FOREX消息下以编程方式避免EA交易?
- 17. 在Unix环境中,有没有一种方法可以以编程方式调用C中的哪个?
- 18. 有没有一种方法可以部署我的Silverlight应用程序并以编程方式更改设置?
- 19. 有没有一种方法可以用图形方式设计程序?
- 20. 有没有一种方法可以在直播网站上使用drawWindow()方法?
- 21. 有没有一种方法可以从protobuf生成GraphQL模式?
- 22. 以编程方式在WP7上显示软输入面板(SIP)
- 23. 有没有一种方法可以平滑滚动?
- 24. 有没有一种方法可以在GUI中使用python编写上标?
- 25. 有没有一种方法可以使用WebKit以编程方式下载用于离线查看的网页?
- 26. 有没有一种方法可以以编程方式去不同的主屏幕?
- 27. 有没有一种方法可以从iTunes页面以编程方式提取播客的提要?
- 28. 有没有一种方法可以从iPhone收件箱中以编程方式删除短信?
- 29. 有没有一种方法可以以编程方式将几何对象表示为maya中的值?
- 30. 从android应用程序中以编程方式控制输入语言键盘。
对缺乏评论感到抱歉:第1部分只是抓住keyDown并启动“获取coive东西“以android的方式进行活动,第二个是抓住答案并将其传递给搜索。关键是startSearch(grabString,false,null,false); – 2013-02-15 21:19:50