Android 谷歌磨损模拟器上的语音识别器无语音输入

Android 谷歌磨损模拟器上的语音识别器无语音输入,android,wear-os,android-speech-api,Android,Wear Os,Android Speech Api,我试着使用Google Wear网站上的自由格式语音输入 在hello world示例中,我刚刚添加了单击textView。它确实会根据语音意图启动Speak Now活动,但模拟器无法从我的麦克风中检测到任何声音 我使用的是Mac OS 10.9.3,我尝试了arm和intel版本的wear watch,并检查了AVD创建中的硬件键盘。文档中说有一个系统内置的语音识别器,所以像在移动模拟器中那样安装谷歌语音应用程序似乎是一个错误的答案 public class MainActivity exte

我试着使用Google Wear网站上的自由格式语音输入

在hello world示例中,我刚刚添加了单击textView。它确实会根据语音意图启动Speak Now活动,但模拟器无法从我的麦克风中检测到任何声音

我使用的是Mac OS 10.9.3,我尝试了arm和intel版本的wear watch,并检查了AVD创建中的硬件键盘。文档中说有一个系统内置的语音识别器,所以像在移动模拟器中那样安装谷歌语音应用程序似乎是一个错误的答案

public class MainActivity extends Activity {

private TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
    stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
        @Override
        public void onLayoutInflated(WatchViewStub stub) {
            mTextView = (TextView) stub.findViewById(R.id.text);
            mTextView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    displaySpeechRecognizer();
                }
            });
        }
    });
}


private static final int SPEECH_REQUEST_CODE = 0;

// Create an intent that can start the Speech Recognizer activity
private void displaySpeechRecognizer() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

    // Start the activity, the intent will be populated with the speech text
    startActivityForResult(intent, SPEECH_REQUEST_CODE);
}

// This callback is invoked when the Speech Recognizer returns.
// This is where you process the intent and extract the speech text from the intent.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {
        List<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        String spokenText = results.get(0);
        // Do something with spokenText
    }
    super.onActivityResult(requestCode, resultCode, data);
}
公共类MainActivity扩展活动{
私有文本视图mTextView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终的WatchViewStub存根=(WatchViewStub)findViewById(R.id.watch\u view\u存根);
stub.setOnlayOutingFlatedListener(新的WatchViewStub.OnlayOutingFlatedListener(){
@凌驾
仅限公共空间布局平坦(WatchViewStub){
mTextView=(TextView)stub.findViewById(R.id.text);
mTextView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
DisplaySpeechRecognitor();
}
});
}
});
}
专用静态最终整型语音请求代码=0;
//创建可以启动语音识别器活动的意图
私有void displaySpeechRecognizer(){
意向意向=新意向(识别意向、行动、识别言语);
intent.putExtra(RecognizerIntent.EXTRA语言模型,RecognizerIntent.LANGUAGE模型自由形式);
//开始活动时,将用语音文本填充意图
startActivityForResult(意图、言语请求代码);
}
//语音识别器返回时调用此回调。
//这是您处理意图并从意图中提取语音文本的地方。
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
if(requestCode==SPEECH\u REQUEST\u CODE&&resultCode==RESULT\u OK){
列表结果=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果);
字符串spokenText=results.get(0);
//用spokenText做点什么
}
super.onActivityResult(请求代码、结果代码、数据);
}

}

我从这篇文章中发现,你可以使用键盘进行输入,我认为现在这还可以

根据android文档,android emulator不支持语音输入。将模拟器用于可穿戴设备时,请启用AVD设置中的硬件键盘,以便您可以键入回复()

您在我之前几秒钟回答:)是的,模拟器不支持语音输入。你需要一个真正的设备。