0

Android Wearで音声入力からアプリ起動する

これ
Adding Voice Capabilities | Android Developers

「Start MyRunningApp」ってやつ全然起動しなくてよくわからなかったんだけど、解決した。


AndroidManifest.xml

こう書くのが正解。「ドア 開いて」とか言えばWearMainActivityが起動する。
<activity
android:name=".WearMainActivity"
android:label="ドア" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>


日本語

Android本体の言語設定が日本語の場合はWearの音声認識も日本語として認識しようとする。
android:labelに「door」とか書くと認識できず、「boa」とか「dooors」とか日本のgoogleで検索してそれなりにヒットする固有名詞になってしまう。おとなしく日本語で「ドア」と書かないと認識できない。

他のアプリでも、「twitter 起動」や「facebook 起動」はちゃんとアプリが起動するけど、「Yo 起動」は「陽気堂」に、「Yo 開いて」は「よう平井堅」になるので「ワイオー 起動」と言う必要がある。たぶんYoとかはandroid:labelに”Yo”って書いてあるのだろう。ローマ字を日本語発音で1文字ずつ読み上げると認識される。

Hue Controlというwearのアプリはwearからhueのon/offができるけど、これも「エイチユーイー コントロール 起動」と言わないと起動できない。


トリガー

「開いて」以外にも「ドア 起動」「ドア 起動して」「ドア 起動して下さい」などでも起動する。

相性があるみたいで、「twitter 起動して」はtwitterアプリが起動するのに、「twitter 開いて」は「ひらいて」という名前の人のtwitterアカウントが開いてしまう。

0

Moto360にBluetoothデバッグでアプリを書き込む

ふつうAndroid Wear用に作った自作アプリをWearに書き込む時は、充電用のUSBポートでPCと接続すればAndroid Studioのターゲットデバイスに表示されるらしい。しかしMoto360はQiによる無線充電なので、USBポートが無い。

PC–(USB)–スマホ–(Bluetooth)–Moto360 と接続すれば、スマホを中継して自作アプリを書き込んだりlogcatを見たりできる。

参考:Debugging over Bluetooth | Android Developers

手順


スマホ側で、「開発者向けオプション」を開いて(無ければ端末情報のバージョン情報を7回タップで出る)「USBデバッグ」を有効にする

Moto360の「開発者向けオプション」を開いて(こっちも無ければWearのバージョン情報7回タップ)「Bluetooth経由でデバッグ」を有効にする

スマホの「Android Wear」アプリの設定で、「Bluetooth経由のデバッグ」を有効にする。「ホスト:未接続」と「ターゲット:接続済み」になればok

AndroidStudioでDevicesにスマホが認識されているか確認する。なければそのままUSB抜き差しすると認識されるはず。


ターミナルで以下を実行
adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444

するとスマホのAndroid Wearアプリで「ホスト:接続済み」「ターゲット:接続済み」になる。
PCのAndroid StudioでもMoto360が認識されているはず

あとは普通にWear用のプロジェクトを作って書き込む時にMoto360を選べば書き込める。

書き込むとこうなって4分ぐらい待たされるが、気長に待つ。
Waiting for device.
Target device: motorola-moto_360-localhost:4444
Uploading file


4分待つの長いし、何もプログレスとか出ないのですごい不安になる。USB接続だともっと速いんだろうか・・・


deployment – Moto 360 Deploying from Android Studio extremely slow – Stack Overflowを見ると、「書き込みに10分かかるんだけど」という質問に対して「adb debugを再起動するとよくなる」っていう解答がある。
試しに再起動しても3,4分かかった。