![グーグルグラス](https://habrastorage.org/storage3/40f/a7b/cb0/40fa7bcb005b5874114879b4e95c18e3.png)
最近、待望のGoogle Glassメガネにアクセスし、それらのアプリケーションの作成を開始しました。
Glassについて知っているのは、Android Debug Bridgeを介して接続し、プログラムを実行する必要があるAndroidデバイスであることだけです。
これは間違っていることが判明しました!
メガネ自体とその詰め物についてはすでに十分なレビューがありますが、プログラマの観点からメガネがどのようなものであり、正しいプログラムがどのように機能するかについて少しお話したいと思います。
もちろん、Androidプログラムは動作します。それは(少なくとも近い将来には)書かない方が良いでしょう。だからこそ...
誰もが、メガネがBluetoothを介してユーザーの電話とペアリングし、インターネットからGPSとGPSを受信すること、また、メガネを介して通話に応答してSMSを送信できることを知っています。
メガネはスマートフォンの一種であるSmartWatchのようなもののように思えるかもしれませんが、外部制御デバイスと3Gモデムとしてのみ電話を必要とする独立したデバイスです。
メガネとは何ですか?
-メガネは電話を補完せず、それについてほとんど何も知りません。実際、BTヘッドセットプロファイルを実装し、他のヘッドセットと同様にコールを受信します。メガネは連絡先の名前すら知りません(もちろん、メガネ自体の連絡先ではありませんこれは後で)。 ちなみに、メガネのヘッドセットは最高ではありませんでした。誰もがハンドセットの「エコー」と、メガネを通してスピーカーの音量が小さいことに気付きました。-独自のプログラムMyGlass(米国でのみ利用可能)をかけた場合でも、メガネは電話からの(ほとんど)データを受け入れません。
-メガネでは、ADBを介さない限り、通常のAndroidプログラムを実行できません。 つまり、「OK Glass Let's Doom」と言ってゲームを入手する方法はありません。
メガネは何ができますか?
-カードからテープ(タイムライン)を表示できます。 「無限に」テープは過去のものであり、完了したすべてのアクション(発信、写真、メモ)と通知が時系列で含まれています。「連絡先があるかもしれません。」 ポイントを理解するための連絡先は、通常のカードを共有できる人(電話番号/メール)またはアプリケーション(ガラス製品)です。 ユーザーがカードで[共有]アクションを選択するとすぐに、1つずつスクロールできる利用可能な連絡先のリストが表示されます。 どうやら、これが眼鏡が完全なコンタクトシートを保存しない理由であり、それを介してナビゲートすることは不可能です。
![タイムライン](https://habrastorage.org/storage3/041/af0/834/041af0834242690079f2f5080f640355.png)
どのように作業するのですか?
正式には、標準のAndroidアプリケーションを作成し、ADBを介してメガネで埋め、Timeline APIを直接使用してポストカードに入力できますが、ユーザーはそのようなプログラムを制御できません。 Googleの理解における正しいオプションは、Mirror API(https://developers.google.com/glass/v1/reference/)です。OAuthを介してポイントへのアクセスを要求するWebアプリケーションを作成します。これ以降、ユーザーのタイムラインにカードを投稿して連絡先を作成することが許可されます。 さらに、返信先アドレスがある場合(これがWebアプリケーションを必要とする理由です)、ポイントからの通知をサブスクライブできます(詳細は後で説明します)。
カードは何ができますか?
-カードはプレーンテキストでも、高度なコンテンツ(html、写真、ビデオ、地図)でも提供できます。 コンテンツは長く、ページ分割(ページ分割)、またはネスト(バンドル)することができます。その後、いくつかの類似したカードを1つにグループ化するだけで、最初のカードがカバーとして機能します。 ルートまたは関心のあるポイントを使用してレイヤーをマップに適用できます。APIはレイヤーをオーバーレイし、メガネで既製の写真を表示します。 カードの例を次に示します。![]() | ![]() | ![]() | ![]() | ![]() |
![地図](https://habrastorage.org/storage3/e60/841/edc/e60841edc6ddf972d3a1f6f258df8738.png)
-カードにはアクションメニューがあります。 デフォルトでは、このカードでは何もできません。削除することもできません。 ただし、カード(アプリケーション)の作成者は、カードに対して多くの操作を実行できる場合があります。 返信、削除、共有、音声読み上げ、音声通話、ナビゲート、ピン、オープンURI、ビデオ再生の標準セットがあります。 さらに、任意のメニュー項目を作成できます。 ここで、メニューはすでにアプリケーションの通知を生成します。
![メニュー](https://habrastorage.org/storage3/7ce/df5/c73/7cedf5c73ca7eea12b883d0bf73d3bea.png)
カード上部の共有メニュー
利用可能な通知は何ですか?
-カードのアクションに関する通知:ユーザーが何かを行う(メニュー項目を選択する)と、カードの一意の識別子とアクションの説明を含む通知を受け取ります。 通知は、POSTリクエストの形式で以前に指定された応答URLに送信され、200コードで応答する必要があります。-ポイントの移動に関する通知:場所の更新を購読すると、10分ごとに、ポイントの最後の既知の場所(または、メガネに独自のGPSがないため、接続された電話)に関する通知が届きます。
また、メガネには、タッチパネル、カメラボタン、回転センサー、加速度、コンパスなどの多くのセンサーが装備されており、これらはすべてネイティブのapkアプリケーションからアクセスできます。 タッチパネルは座標を提供しませんが、スワイプ、タッチ、スワイプ、2本の指でのタッチなどのジェスチャーについてプログラムに通知します。 ネイティブアプリケーションでの相互作用は、これらのジェスチャとセンサーからの信号に基づいて構築できます。たとえば、組み込みのメガネブラウザーは、頭を傾けてページをナビゲートできます。
電話からメガネに何かを投稿したい場合は、コールバックURLを指定せずにOAuth経由でログインし、APIを介してカードを作成するのが最善の方法です(電話上のアプリケーションは、独自のURLがないため通知を受信できません)。 このオプションは、ユーザーアクション(リマインダー、ニュースなど)に対する特別な反応を伴わないプログラムに適しています。
メガネのIPAは急速に発展しており、すぐにメガネとやり取りするより簡単な方法がすぐに登場しますが、単一の通信チャネルを使用してメガネがアイドル状態にならない(メガネのバッテリーが最も強力ではない)ため、カードは正確です。 すべての処理もサーバー側で行われ、デバイスの電力がさらに解放されます。 一般的に、現在の形式では、メガネはまず重要な情報をリアルタイムで取得する手段であり、ゲームや複雑なアプリケーションのプラットフォームではありません。
そのため、メガネをまだ持っていない場合でも、既存のインターフェースがプログラムにどのように役立つかについてはすでに考えておくことができます。
追伸 メガネ自体について知りたい人は公式ページから始め、スマートフォン用のアプリケーションを書きたいと思っている人はここから始めるべきです (正しいキーで署名してGoogleコンソールに登録することを忘れないでください )。
P.P.S. 新しいデバイスを提供してくれたWeezlabsに感謝します。