首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android语音识别权限不足(错误代码9)

Android语音识别权限不足(错误代码9)
EN

Stack Overflow用户
提问于 2016-02-07 00:01:46
回答 4查看 15.7K关注 0票数 9

我试图在没有标准对话框的情况下实现语音识别(它可以很好地处理这个对话框)。

当我试图开始监听时,我就会得到错误代码9。

我的设备是LG G(运行Android6.0)。

清单:

代码语言:javascript
运行
复制
<manifest package="example.com.myapplication"
      xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<application
 .....

(还尝试添加INTERNET权限,尽管这不应该是必要的,因为离线识别应该有效)

build.gradle:

代码语言:javascript
运行
复制
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "example.com.appname"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}

语音识别代码:

代码语言:javascript
运行
复制
private SpeechRecognizer speechRecognizer;

protected void onCreate(Bundle savedInstanceState) {
  speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
  speechRecognizer.setRecognitionListener(new speech_listener());
  Intent intent = new intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
  intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
     RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
  intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
       getApplication().getPackageName());
  intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);
  intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH);
  speechRecognizer.startListening(intent);

侦听器(内部)类:

代码语言:javascript
运行
复制
class speech_listener implements RecognitionListener
{
  public void onReadyForSpeech(Bundle params){}
  public void onBeginningOfSpeech(){}
  public void onRmsChanged(float rmsdB){}
  public void onBufferReceived(byte[] buffer){}
  public void onEndOfSpeech(){}
  public void onError(int error){
    Log.d("Speech", "error: " + error);
  }
  public void onResults(Bundle results)
  {
    ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
    String answer = (String)data.get(0);
    processAnswer(answer);
  }
  public void onPartialResults(Bundle partialResults){}
  public void onEvent(int eventType, Bundle params){}
}

任何洞察力都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-07 06:29:44

在Android 6上,这种许可是危险的,这意味着您需要要求用户确认它(实际上获得了它)。有关更多细节,请查看

票数 14
EN

Stack Overflow用户

发布于 2016-03-03 22:59:14

添加到萨姆的回答:当你在安卓6上开发应用程序时,可能不会提示你批准“危险”录音音频(麦克风)权限,所以你需要在设置中手动打开应用程序并授予权限。

票数 13
EN

Stack Overflow用户

发布于 2021-07-01 12:32:44

在我的例子中,错误消息是“9/不足的权限”。

通过给麦克风许可给Google应用程序解决问题

参考资料:https://github.com/react-native-voice/voice/issues/253#issuecomment-812726040

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35248075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档