Android, WebView and SpeechRecognition-API(Android、WebView和SpeechRecognition-API)
问题描述
我面临着一个相当恼人的问题: 对于客户项目,我需要使用HTML5/JavaScript(客户规范)进行某种"语音结束"检测。所以我做了一些研究,想"好吧,让我们试试SpeechRecognition API",它是"onSpeech End"-事件。这在我的机器上就像咒语一样工作,但在应用程序本身却不起作用。在我的研究中,我发现,您在应用程序中使用的WebView实际上不是系统的默认浏览器。
默认浏览器的用户代理返回我
Mozilla/5.0 (Linux; Android 6.0.1; SM-G900F Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36
但是,WebView-用户代理返回
Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
令人不安的是,SpeechRecognition-API在默认浏览器中可用,但在WebView-实例中不可用。有谁知道如何解决/解决这个问题吗?
或任何想法,如何检测讲话结束。不幸的是,使用SpeechRecognition-Intent不是一个选择。我想这样做,但正如前面提到的,客户坚持使用HTML5/JavaScript来这样做。
推荐答案
我已经实现了Android的默认语音识别。
经过大量资源挖掘,发现只需通过webview chromeclient即可授权
注意:这是一个有效的解决方案。
webView.setWebChromeClient(new WebChromeClient()
{
@Override
public void onPermissionRequest(final PermissionRequest request) {
request.grant(request.getResources());
}
}
干杯!
这篇关于Android、WebView和SpeechRecognition-API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Android、WebView和SpeechRecognition-API
基础教程推荐
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01