In my main activity I launch a new Intent:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "What would you like to find?\n For example \"Open heart surgery\"");
startActivityForResult(intent, SPEECH_REQUEST);
Then I retrieve the keywords that were spoken here:
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == SPEECH_REQUEST && resultCode == RESULT_OK) {
List<String> results = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
String spokenText = results.get(0);
Intent intent = new Intent(ApiDemoActivity.this,SearchActivity.class);
intent.putExtra("keyword", spokenText);
startActivity(intent);
finish();
}
super.onActivityResult(requestCode, resultCode, data);
}
Now all this works just fine, but I noticed a problem. During the RecognizerIntent.ACTION_RECOGNIZE_SPEECH.. if I tap the google glass (in any way on the D-pad), it'll bug out the voice recognition. Meaning that it refuses to detect any sound. What could be causing this problem?
Logcat Update
I'm getting two main errors during the SPEECH_REQUEST when I tap the Dpad:
12-08 10:12:58.687: E/SpeechRecognizer(940): not connected to the recognition service
12-08 10:12:58.695: E/GlassRecognitionService[41e733b8](940): VoiceService disconnected.
Logcat:
12-03 09:45:06.513: E/SpeechRecognizer(847): not connected to the recognition service
12-03 09:45:06.513: I/BroadcastingVoiceInputCallback[425b67c8](847): Unregistered GlassRecognitionService
12-03 09:45:06.513: E/GlassRecognitionService[42b01bf0](847): VoiceService disconnected.
12-03 09:45:06.521: I/RecognizerController(847): stopListening
12-03 09:45:06.521: I/RecognizerController(847): detachVoiceInputCallback
12-03 09:45:06.521: I/RecognizerFactory(847): deactivate() called on no-op recognizer, nothing to do.
12-03 09:45:06.521: I/VoiceEngine[425ecfd8](847): Setting active recognizer: VoiceConfig []
12-03 09:45:06.521: I/RecognizerFactory(847): activate() called on no-op recognizer, nothing to do.
12-03 09:45:06.521: I/RecognizerController(847): cancel
12-03 09:45:06.537: D/dalvikvm(847): threadid=47: thread exiting, not yet detached (count=0)
12-03 09:45:06.545: D/native_audio_voice_microphone(847): *** Close native audio interface for GlassVoice. NativeAudioInterfaceWrapper_nativeClose() ***
12-03 09:45:06.552: I/ConcurrentAudioInterface[4256aec8](847): Closed audio interface.
then a couple seconds later:
12-03 09:45:16.295: V/GlassNotification(589): Received notification id: 1 packageName: com.google.glass.settings.ui
12-03 09:45:16.295: V/GlassNotification(589): skipping since notification not whitelisted
12-03 09:45:19.529: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0xd9
12-03 09:45:19.529: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x17b
12-03 09:45:19.537: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x234
12-03 09:45:19.537: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x315
12-03 09:45:19.592: D/dalvikvm(770): GC_CONCURRENT freed 386K, 8% free 5774K/6212K, paused 14ms+2ms, total 46ms
12-03 09:45:32.279: V/GlassNotification(589): Received notification id: 1 packageName: com.google.glass.settings.ui
12-03 09:45:32.279: V/GlassNotification(589): skipping since notification not whitelisted
12-03 09:45:43.490: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0xd9
12-03 09:45:43.498: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x17b
12-03 09:45:43.506: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x234
12-03 09:45:43.506: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x315
12-03 09:45:44.412: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0xd9
12-03 09:45:44.412: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x17b
12-03 09:45:44.420: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x234
12-03 09:45:44.420: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x315
12-03 09:45:45.638: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0xd9
12-03 09:45:45.638: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x17b
12-03 09:45:45.646: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x234
12-03 09:45:45.654: E/ming$MessageInputStream(770): bad domain name: possible circular name detected. Bad offset: 0x41 at 0x315
12-03 09:45:48.295: V/GlassNotification(589): Received notification id: 1 packageName: com.google.glass.settings.ui
12-03 09:45:48.295: V/GlassNotification(589): skipping since notification not whitelisted
12-03 09:45:48.342: D/dalvikvm(725): GC_EXPLICIT freed 173K, 4% free 5225K/5440K, paused 2ms+4ms, total 38ms
12-03 09:45:55.217: V/AlarmManager(506): triggered: flg=0x4 cmp=com.google.glass.logging/.WatchdogService
Update:
I noticed that once I bug the RecognizerIntent.ACTION_RECOGNIZE_SPEECH
, a couple swipe downs in a row will finally be detected and I return either to a new RecognizerIntent.ACTION_RECOGNIZE_SPEECH or it just leaves the app completely. I'll post more information about this in the coming days.