2013-11-24 5 views
8

Ich habe gerade angefangen für Google Glass zu entwickeln, und ich wusste, die GDK wenn ziemlich neu, so dass dies möglicherweise noch nicht möglich ist, aber hier ist, was ich versuche zu:Create "ok Glas" -Stil-Menü, in Glas App

Wie bei der Eingabeaufforderung "Anruf tätigen" oder der Aufforderung "Nachricht senden an" auf dem Bildschirm "OK Glas" möchte ich, dass meine App mehr Sprachoptionen enthält, wenn Sie sie mit Ihrer Stimme auswählen. Mit den beiden Beispielen sehen Sie eine Kontaktliste, in der Sie Ihren Kopf nach oben und unten bewegen können, um mehr zu sehen, und die App wird nur dann weitere Aktionen ausführen, wenn Sie eine der angezeigten Optionen ausgewählt haben. Gibt es derzeit eine Möglichkeit, das auf meiner eigenen App zu tun?

Jede Eingabe wird geschätzt!

+0

Ich bin auch auf der Suche nach ... für diejenigen, die noch unklar sind, können Sie es in Apps wie der eingebauten Kamera-App sehen.Wenn Sie ein Bild oder ein Video per Sprachbefehl machen, erhalten Sie eine "ok glass" -Option im Kontext des gerade aufgenommenen Bildes oder Videos. Dies wäre sehr nützlich für jede App, um davon zu profitieren. – JRomero

+2

Dies ist ein Duplikat einer anderen Frage und Alain antwortete, dass es noch nicht möglich ist, in der GDK und eine Feature-Anfrage: http://StackOverflow.com/a/20134647/1174526 – louielouie

Antwort

2

Sie können eine Absicht aufrufen, um den Spracherkenner anzuzeigen, nachdem Ihre Aktivität gestartet wurde. Sie können also Ihre Stimme ab dem Start auslösen und abfragen, und dann in der onResume() -Aktivität Ihrer Aktivität den Spracherkenner mit einer Art Aufforderung aufrufen (oder Sie könnten einfach die erste gesprochene Sprache als Eingabe aufzeichnen). :

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "ok glass, here's my prompt"); 
    startActivityForResult(intent, 0); 

Sie würden eine onActivityResult() -Methode, dann müssen die Rückkehr zu verarbeiten, die VoiceRecognizer bilden.

Dies ist die in der GDK docs beschrieben: https://developers.google.com/glass/develop/gdk/input/voice

Nicht sicher, ob es eine andere Möglichkeit ist.

+0

Ich habe das versucht, und es funktioniert in gewissem Umfang, aber es ist immer noch nicht die Art von Menü, die ich suche. Auf diese Weise ersetzt der Text, den der Benutzer sagt, die Eingabeaufforderung, wenn sie zu sprechen beginnen, und sie können hier etwas sagen. Stattdessen möchte ich nur das Glas, wenn sie eine meiner Handlungen sagen. Raten Sie das ist noch nicht möglich ... – tVoss42

+0

Ich habe diesen Ansatz versucht, aber festgestellt, dass es nur funktioniert, wenn Sie eine aktive Internetverbindung haben. Aus der Dokumentation: "Die Implementierung dieser API ist wahrscheinlich Streaming-Audio auf Remote-Servern zur Durchführung von Spracherkennung, die eine erhebliche Menge an Bandbreite verwenden kann." – Armentage

0

Fragen Sie, ob Sie Glass einen Sprachbefehl hinzufügen können, der Ihre App auslöst? Wenn ja - absolut. Dies ist in der Tat der empfohlene Weg, um eine App auf dem GDK zu starten.

Siehe https://developers.google.com/glass/develop/gdk/input/voice#launching_glassware für die Details, aber im Grunde werden Sie

  1. hinzufügen Ressourcen res/values/strings.xml beschreiben den Auslöser und prompt
  2. eine Ressource in res/xml/<my_voice_trigger>.xml erstellen, die den String-Wert als das Schlüsselwort verwendet und stellt den Eingang prompt
  3. für die Aktion VOICE_TRIGGER

(Als Nebenwirkung eine Absicht Filterregister, scheint es, t Verben sind die besten Sprachauslöser - sie fließen natürlicher mit dem Menüeintrag "OK, Glas".)

+0

Ja, ich weiß, wie das geht, aber Ich frage, nachdem ich meine App ausgewählt habe, wenn es eine Möglichkeit gibt, ein anderes Menü zu präsentieren, das sich ähnlich wie das "ok google" -Menü verhält, aber mit meinen benutzerdefinierten Optionen. – tVoss42

2

Ich fand diese Antwort von another SO question, die genau so scheint, wie Sie wollen. Ich habe es selbst für meine eigene Glassware ausprobiert und es funktioniert einwandfrei. Wie in der Antwort unten erwähnt, gibt es eine Einschränkung, dass andere Apps, die den gleichen "ok glass" Sprachbefehl verwenden, das Untermenü teilen; Im folgenden Beispiel können beispielsweise andere Apps weitere Spiele wie "Golf" hinzufügen. Ein weiteres potenzielles Problem besteht darin, dass Sie für jede der im Untermenü verfügbaren Optionen eine Aktivität oder einen Dienst benötigen.

„Wenn Sie mehrere Aktivitäten haben/Dienstleistungen auf Glas installiert, die die gleiche Stimme auslösen Intent-Filter haben, alle ihre Namen (bezogen auf das android:label Attribut des <activity> oder <service> Tag in AndroidManifest.xml) wird in einer Begriffsklärung erscheinen“ Untermenü "Wenn du diese Stimme triffst.

Zum Beispiel (unter der Annahme, dass res/xml/play_a_game_trigger.xml für die Zeichenfolge eine Stimme Trigger darstellt "ein Spiel zu spielen"):

<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> 

würden Sie eine Sprachmenü Fluss, die

wie

ok glass → play a game → Tennis 
         Bowling 
sieht Beachten Sie jedoch, dass dieses Menü auch Aktivitäten/Dienste von anderen APKs enthält, die den gleichen Sprachauslöser verwenden.

Sie können weitere Informationen auf der Voice Input Seite der GDK-Dokumentation.“

0

Jetzt können Sie Framework-APIs verwenden, um ein okes Glas Menü auf Ihrer Aktivität zu zeigen, Prüfung dieser Dokumente über Kontextsprachbefehle