C'è un modo per nidificare i trigger vocali quando si avvia un'applicazione su Google Glass utilizzando GDK? Ad esempio, invece di dire "ok, glass" -> "Qual è il suo livello di potenza?" Mi piacerebbe che l'app presenti un'opzione. Ad esempio "ok, vetro" -> "Qual è il suo livello di potenza?" -> "Oltre 9000" OPPURE "Under 9000". Qualsiasi aiuto sarebbe grande!Modo per nidificare più trigger voce quando si avvia un'app con GDK
risposta
Se si dispone di più attività/servizi installati su vetro che hanno la stessa voce innescare filtro intenti, tutti i loro nomi (in base all'attributo android:label
del <activity>
o <service>
tag nel AndroidManifest.xml
) apparirà in un "sottomenu" disambiguazione quando pronunci quella voce innescata.
Per esempio (per scontato che res/xml/play_a_game_trigger.xml
rappresenta un trigger voce per la stringa "giocare una partita"):
<activity android:label="Tennis">
<intent-filter>
<action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data android:name="com.google.android.glass.VoiceTrigger"
android:resource="@xml/play_a_game_trigger" />
</activity>
<activity android:label="Bowling">
<intent-filter>
<action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data android:name="com.google.android.glass.VoiceTrigger"
android:resource="@xml/play_a_game_trigger" />
</activity>
darebbe un flusso menu vocale che sembra
ok glass → play a game → Tennis
Bowling
Si noti, tuttavia, che questo menu includerebbe anche attività/servizi da altri APK che utilizzano lo stesso trigger vocale.
È possibile trovare ulteriori dettagli nella pagina Voice Input della documentazione GDK.
Il modo corretto per farlo è usare un tag ingresso all'interno del trigger
<trigger keyword="@string/start_app" >
<input prompt="@string/promt_text" />
</trigger>
Ciò induce un ingresso e attende per il discorso più audio.
Poi nella vostra attività è possibile catturare questo testo con:
ArrayList<String> text = getIntent().getExtras().getStringArrayList(RecognizerIntent.EXTRA_RESULTS);
- 1. Opendiff non si avvia più
- 2. Avvia l'animazione quando si scorre su
- 3. L'emulatore Android non si avvia più
- 4. L'intento dell'immagine GDK si blocca Toccare per accettare
- 5. C'è un modo per creare più trigger in uno script?
- 6. Avvia MIDlet automaticamente quando il dispositivo si riavvia?
- 7. Il selenio si blocca quando si avvia Firefox su Ubuntu
- 8. Quando vuoi nidificare le classi in C#?
- 9. System.Threading.Timer non si avvia?
- 10. Duplica la voce per l'indice con FactoryGirl quando si eseguono i test
- 11. Packager non si avvia
- 12. Porta alternativa per Tomcat (non 8080) quando si avvia con Maven?
- 13. Google Glass: GDK con Android Studio
- 14. Come nascondere la tastiera quando si avvia l'attività
- 15. Tomcat non si avvia
- 16. Jenkins Git Plugin Build Trigger RegEx avvia lavori errati
- 17. RabbitMQ non si avvia
- 18. SonarQube non si avvia
- 19. I trigger alci non attivano quando si utilizza DBIX :: Class
- 20. avvia l'attività dal servizio quando si fa clic sulla notifica
- 21. Come usare hudson quando si costruisce per più piattaforme
- 22. Avvia l'app personalizzata con URL per dominio
- 23. Webview Android avvia il browser quando si chiama loadurl
- 24. MongoDB non si avvia
- 25. WinGHCi non si avvia
- 26. jQuery ".triggerHandler()" vs. ".trigger()" quando sono selezionati più elementi
- 27. arresto anomalo quando si avvia l'app dal Centro di notifica
- 28. La console Heroku rails non si avvia più
- 29. blocco scia di AlarmManager quando si avvia un servizio
- 30. Errore: Eccezione gettata dall'agente: java.lang.NullPointerException quando si avvia un'applicazione Java
Questo ha funzionato, Grazie mille uomo! – Sevros
Non dovrebbe 'android: name =" Bowling "' be 'android: label =" Bowling "'? Sono sicuro che ricade sul nome dell'attività ma l'etichetta dovrebbe essere l'attributo appropriato. – JRomero
Oops, sì, hai ragione, grazie per averlo capito. Ho aggiornato la risposta. –