语音识别:startListening()Android 6/7上的“网络错误”

时间:2017-06-09 09:47:48

标签: android typescript ionic2 cordova-plugins speech-recognition

当我运行下面的代码时,只要发出哔声就开始录制麦克风,我会收到“网络错误”:

我不知道这里有什么问题。我已经:

  • 正确添加了:cordova插件+ npm模块,
  • 在麦克风的应用中授予了权限
  • 尝试连接到WIfi
  • 尝试连接到4g
  • 尝试删除并重新添加Android平台到项目
  • 尝试了2款不同的手机(三星s5 android 6 / sony xperia z5c android 7)

这是我的基本代码,这里没什么特别的:

  setupSpeechRecognition() {
    this.speechRecognition.requestPermission().then(() => {
        this.speechRecognition.startListening().subscribe(
            (matches) => {
              // matches here...
            },
            (onerror) => {
              alert("Error: " + JSON.stringify(onerror));
            }
        );          
      },
      () => {}
    );      
  }

这是踢我的AndroidManifest.xml:

<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name="cordova.plugins.Diagnostic$LocationProviderChangedReceiver">
            <intent-filter>
                <action android:name="android.location.PROVIDERS_CHANGED" />
            </intent-filter>
        </receiver>
        <receiver android:name="cordova.plugins.Diagnostic$NFCStateChangedReceiver">
            <intent-filter>
                <action android:name="android.nfc.action.ADAPTER_STATE_CHANGED" />
            </intent-filter>
        </receiver>
    </application>
    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="25" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

有什么想法吗?谢谢!

0 个答案:

没有答案