前回は、おもに製品であるLGの「G Watch」こと「LG W100」についての説明を行いましたが、今回は、G Watchなどに搭載されているアンドロイドウェア(Android Wearを以下このように表記します)について少し探っていくことにしましょう。

アンドロイドウェアが持つ機能は、以下の4つです。

  • 通知(Notification)
  • ウェアラブルアプリ(アンドロイドウェア側で動作するアプリ)
  • 音声コマンド(およびGoogle Now相当の音声検索機能)
  • Watch Face(時計表示)の切り替え

このうち、通知に関しては、一般アプリケーションからの通知とアンドロイドウェア専用の通知の2種類があります。前者は、アンドロイドスマートフォン側に表示される通知がほとんどそのまま表示する機能です。ただし、Playストアによるアプリケーションのアップデートや、画面キャプチャーの通知などはアンドロイドウェア側には表示されません。ですが、Bluetoothによるファイル転送やOneDriveの同期エラーなどは表示されてしまいます。

おそらくアプリケーションが通知に対して付けるフラグの設定により違いが出るのだと思われます。アンドロイドの通知(Notification)では、通知を組み立てるときに「FLAG_LOCAL_ONLY」という指定が可能で、これを付けると「通知は該当デバイスのみに関連し、他のデバイスへ渡すことは推奨されない」ことになります。逆にBluetoothのファイル転送やOneDriveの同期エラーには、このフラグが付いていないのだと想像されます。ただし、このような場合、アンドロイドウェア・アプリの設定で通知をアンドロイドウェア側に送ることを禁止できます(写真01)。

写真01: アンドロイドウェアに非対応のアプリで通知は不要と思われるものがある場合、「アンドロイドウェア」アプリの設定で、アプリ単位で通知の表示を禁止できる

アンドロイドウェアに対応したスマートフォン側のアプリ(アンドロイドのアプリ)では、通知にさまざまなアクションを付けることなどが可能です。開発者用のドキュメントによれば、アンドロイドウェアの縦方向に並ぶカードは、「Context Stream」(コンテキストストリーム)と呼ばれます。ここには、さまざまな通知およびウェアラブルアプリ(アンドロイドウェア上で動作するアプリ)の先頭カードが並びます。各カードは場合によっては、右側に追加のページやアクションボタンや音声入力、リスト選択、確認アニメーションなどがあります。

・Android Developer Android Wear
https://developer.android.com/intl/ja/design/wear/index.html#Stream
Context StreamやCue Card(後述)などの記載がある。

こうしたアンドロイドウェアに対応したアプリには、GMailがあります。GMailの通知カードの右側には「アーカイブ」、「返信」、「端末で開く」の3つのアクションボタンがあります。それぞれタップすることで動作します。また、最初のページは、メッセージの先頭部分のみを表示していて、タップすることで、本文全体を表示したり、他のメッセージを表示することができます。アプリは、アンドロイドウェア用の通知を作成することで、こうしたアクションボタンなどを追加することができます。

また、GMailの返信アクションボタンは、音声入力や固定メッセージの選択画面に切り替わり、返信文を作成することが可能です。アンドロイドウェア用に通知機能を搭載する場合、音声による文字入力が可能です。

もう1つの機能は、アンドロイドウェアを搭載したスマートウォッチなどの「ウェアラブル・デバイス」側で動作する「ウェアラブル・アプリ」のインストールと実行機能です。アンドロイドウェアは内部的には、アンドロイドそのもので、アンドロイドのAPIサブセットを持っています。現在出荷されている製品には、Android 4.4(KitKat)をベースにしたAndroid 4.4Wと呼ばれるシステムが利用されています。APIレベルは20で、Android "L"開発者プレビューと同じですが、システム的にはKitKatベースで"L"ベースではないようです。

スマートフォン上のAndroidとの大きな違いは、画面が小さいためにカード形式の表示やユーザーインターフェースが必要になる点です。たとえば、ユーザーに選択を行わせるリストは1画面に3個程度までで、それ以上ある場合には画面をスクロールさせるようになります。たとえば、標準機能のタイマー設定や画面の明るさ設定などがこの選択リスト形式です(写真02)。

写真02: アンドロイドウェア上では選択リストは3項目を表示し、それ以上は画面をスクロールさせて項目を表示させる。このように画面サイズが違うためウェアラブルアプリでは、スマートフォン上のアンドロイドアプリとは違いがある

開発者向けのドキュメントによれば、以下の5つを除く、アンドロイドの標準API(オブジェクト)が大部分が利用できます。また、APIを呼び出す前にそのAPIが利用できるかどうかのチェックも可能なようです。このほか、ウェアラブルアプリ特有の機能としては、音声入力が可能になっています。

android.webkit Webブラウザ機能
android.print 印刷関連機能
android.app.backup アプリ設定のクラウド側へのバックアップ機能
android.appwidget ウィジェット関係
android.hardware.usb USBデバイス関係

ウェアラブルアプリは、特殊な形式にパッケージ化され、Playストア経由で配布を行うことができます。すでに、いくつかのウェアラブルアプリがPlayストアに登録されています。また、スマートフォンの「アンドロイドウェア」アプリから検索できる「アンドロイドウェア対応アプリ」は、代表的なものだけで、Playストアで検索することで、さらに多数のアプリを見つけることが可能です。

現在のバージョンは暫定版?

こうした機能を持つアンドロイドウェアですが、現状は、通知を表示するセカンドディスプレイの範疇を大きく逸脱するものではありません。なんとなく、中途半端な感じがあります。大きな理由の1つは、音声コマンドの種類が限られていることです。

音声入力画面をタップすると、利用可能なコマンドのリストが表示されますが、Android Developerのページではこれを「キューカード」と呼んでいます(写真03)。キューカードは、「音声コマンドの提案リスト」だとされています。そして技術的には、提案された音声コマンドは、「特定のタイプのインテント」あります。

写真03: 音声入力画面をタッチして表示される「キューカード」は、音声認識可能なコマンドのリストになっている。ここにある項目は、タッチしても実行可能だが、音声入力でも実行できる。ただしウェアラブルアプリを起動する「開始...」のみは音声コマンドで操作できない

インテントとは、アンドロイドのAPIの1つで、さまざまな機能や他のアプリを検索して起動する方法です。たとえば、テキストやURLなどを引数にしてインテントを起動することで、テキスト編集アプリやWebブラウザを起動することができます。重要なのは、このとき、起動元になるアプリ側は、どのようなアプリがインストールされているのかを意識する必要がないことです。つまり、あとからインストールしたアプリを起動させることもできるし、元々あるアプリを起動することもできるのです。

つまり、音声コマンドやこれをリストにしたキューカードからさまざまなアプリケーションが起動できるのです。ですが、現状のアンドロイドウェアに関する開発者向けのドキュメントを見ても、開発者が音声コマンドを定義する方法は記載されていません。ですが、アンドロイドウェアの発表時にブログで公開されたビデオなどを見ると、音声でガレージのドアを開けるなど標準にはない音声コマンドが使われている部分があります。

・Android Wareに関するGoogle official Blog
http://googleblog.blogspot.jp/2014/03/sharing-whats-up-our-sleeve-android.html
今年3月の時点のもの。最初のビデオの最後に「OK Google、open garage」と発声してドアを開けるシーンがある。

また、スマートフォン側にインストールする「アンドロイドウェア」アプリには、音声コマンドと起動されるアプリを対応させる機能がありますが、初めて起動したとき、ここには「タクシーを呼ぶ」しか項目がありません(写真04)。その後、Google Nowの利用を許可すると、タイマやアラーム関係の項目、メモ用の項目などが追加されます(写真05)。どうも、入力した音声を「音声コマンド」として処理するのか、インターネット検索するのかは、「アンドロイドウェア」アプリやGoogle Nowなどが決めている感じです。

写真04: 「アンドロイドウェア」アプリを起動したときGoogle Nowの利用を開始していないと、音声コマンドは「タクシーを呼ぶ」の1つだけしか登録されていない

写真05: Google Nowを利用可能にすると、時計関係のアプリやメモ入力などの音声コマンドの利用が可能になる

おそらく、基本的な機構としては、音声コマンドは拡張可能だが、なんらかの理由で、機能を解放していないのだと思われます。音声コマンドとインターネット検索などの切り分けなどが技術的に困難なのでしょうか? しかし、ライバルであるWindows Phone 8.1に搭載されるCortanaは、開発者がアプリを起動する音声フレーズを登録する機能があり、マイクロソフトの説明によれば、平易な表現で登録が可能だとしています。ただ、Cortanaは、ベータ版でしかも英語でしか動作しません。システムの言語を他の言語に変更してしまうとCortanaが利用できなくなります。アンドロイドウェアは、初期設定を見ると多数の言語に対応しています。Google Nowも現在では多数の言語に対応していて、音声による検索が可能です。可能性としては、英語ではある程度までは完成しているものの、多言語対応が遅れているのかもしれません。

もう1つ、中途半端な部分は、時計表示(ウォッチフェイス)です。標準でいくつかのフェイスが選択可能ですが、開発者向けのドキュメントを見ても、フェイスを開発する方法についての説明がありません。しかし、技術的にみると、ウォッチフェイスは、前述のコンテキストストリームの先頭で実行されている「ウェアラブルアプリ」のようです。実際、公開されているシステムイメージファイルなどを解析してウォッチフェイスを作った人もいるようです。Playストアを検索するといくつものウォッチフェイスが登録されています。調べてみても、作るのはそれほど難しくないようです。

これについては、公式な発表ではありませんが、Googleの開発者Wayne Piekarski氏がGoogle+で発言を行っています。消費電力などの問題から現在は、カスタムのウォッチフェイスについては開発ができない(情報を公開していない)が、現在、開発者がウォッチフェイスを作ることができるように作業を進めているところだといいます。

さらにこの発言には、今年の終わり頃までにベースにするアンドロイドのバージョンをAndroid "L"にする予定だととも書かれています。また、未公開のAPIを使ってウォッチフェイスの開発を行い、これをPlayストアで公開することは推奨しないとも述べています。

・Google+ Wayne Piekarski氏の発言
https://plus.google.com/+WaynePiekarski/posts/2bzJJxG2CAX

そういうわけで、現在のAndroid Wareは「暫定版」なのです。おそらく、変更される可能性が高い部分は、未公開のままとなっているのでしょう。なので、Android Wearを評価するのは、年内に登場するであろう"L"ベースになってからのほうがいいのかもしれません。

本稿は、2014年7月22日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。