森川敬一 CTO ブログ

unimediaでCTOやってます森川敬一です。エンジニアブログ。IoT、ウエアブルとか書いていきます。

GoogleGlassにアプリを入れてみる その3

モンゴルにて検証中です。
明後日ラボに持っていくので明日がリミット!

デバイスが認識しなかった件ですが、再度、
・デバイスマネージャーからデバイス削除
・その他デバイスのグラス1にデバイスインストール
を繰り返したら認識されました。

その後、adb devicesにて"unauthorized"にハマりました。

これは先ず、glassで"authorize debug access”の画面が出てるの気付きませんでした。

UBSにて接続したらGoogleGlassの画面に"authorize debug access”が出てタップすると承認されました。

https://developers.google.com/glass/develop/gdk/quick-start


Connect Glass to your development system and tap on the touchpad to authorize debug access.と書いてあります。よく読んで気付きました。

ただその後もすんなりいかず、何度かデバイスの削除やdebug modeの切り替えを行ってたら解決しました。

ということでとりあえずアプリを作ってみます。

eclipseで新規プロジェクト作成
f:id:m-kei1:20141125182624p:plain

そのまま実行できない。
対象のgoogleGlassがeclipseで選択できない。
悩んだ挙句、直接、adb install *** した結果、
INSTALL_FAILED_OLDER_SDK

なんと、Glass側のOSが低い様です。

そーいえば巷で出てましたね。KitKatになるとか。

ということでアップデートをしたいと思ったんですが、
何処にあるか全く不明です。

暫く悩んで、あっと気付きました。
アップデートするなら、wifi経由。
でもwifi設定してない。

はい。面倒なのでしてなかったんです。
すると自動的にアップデートが始まりました。

皆様、wifi設定お忘れなく!!
完了後、無事にeclipseで実行できました!!

f:id:m-kei1:20141125185052p:plain

この画面がそのままGlassに表示されます。
*この画面は、Android Screen Monitorを使用してキャプチャしました。
参考URL
Android Screen Monitor - adakoda

GoogleGlassにアプリを入れてみる その2

GoogleGlassの購入の理由は、モンゴル国立大学とモンゴル科学技術大学とレボを設置するためでした。

IoTやウエアブル、iBeacon等のラボを設立します。

ということでラボへ持っていくか無いだめなので、
これ以上は、調査できませんでした。

すみません、対策は又後日。

ということで、来週の24-28でモンゴル行ってきます。

寒そうだな・・・

GoogleGlassにアプリを入れてみる

先ずは、SDK Manager.exeでGlassのSDKをダウンロードします。
f:id:m-kei1:20141119171529p:plain

次にPCとGoogleGlassをつないだ後、デバイスを自分のSDKのパスに更新します。

f:id:m-kei1:20141119171533p:plain
f:id:m-kei1:20141119171538p:plain

GoogleGlassの方で
「Setting 」
「Device info」
「Turn on debug」をタップしてデバッグを有効にします。

「Debug On」と表示されます!

結構、最初操作方法が良くわからなくて迷いましたが、カードをスライドさせるUIというのを理解すると操作がわかります。

でUSBでPCと接続。

したのですが、adb devicesで認識されない。

何故だ・・

続く

AndroidWear Galaxy Gear 2で動かす

Samsungのサイトからサンプルプログラミングをダウンロードします。

Sample Applications | SAMSUNG Developers

最初なので、 Hello Accessoryをダウンロードしました。

http://developer.samsung.com/sample-app/view.do?v=S000000047#none

eclipseにHelloAccessoryProviderの方をimportして、実行!

Galaxy Gear2のアプリケーションからアプリを選択実行。
f:id:m-kei1:20141117184250j:plain


すると下記の画面が出て、connectー>fetchで時間が表示されてる様です。
f:id:m-kei1:20141117184356j:plain 

HelloAccessoryProviderService.javaのソース(98行目)を読んでみると、

@Override

public void onReceive(int channelId, byte[] data) {

 

Time time = new Time();

 

time.set(System.currentTimeMillis());

 

String timeStr = " " + String.valueOf(time.minute) + ":"
+ String.valueOf(time.second);

 

String strToUpdateUI = new String(data);

 

final String message = strToUpdateUI.concat(timeStr);

 

final HelloAccessoryProviderConnection uHandler = mConnectionsMap.get(Integer
.parseInt(String.valueOf(mConnectionId)));
if(uHandler == null){
return;
}
new Thread(new Runnable() {
public void run() {
try {
uHandler.send(HELLOACCESSORY_CHANNEL_ID, message.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}

 

onReceiveの後、uHandler.sendで時間を返してるのがわかります。

 

HelloAccessoryConsumer(Gear側)のmain.jsを見てみると、

function fetch() {

try {
SASocket.setDataReceiveListener(onreceive);
SASocket.sendData(CHANNELID, "Hello Accessory!");
} catch(err) {
console.log("exception [" + err.name + "] msg[" + err.message + "]");
}
}

 

fetchボタンでsendDataしてるのが分かります。

なるほど、こんな感じでやり取りするんですね。

 

Android Wearアプリ開発

 

先ず、USBデバッグを有効にする必要がありますね。

1.Galaxy Gear2でUSBデバッグ有効化

  設定 -> Gearの情報 -> UBSデバッグ にチェックを入れます。

2.Galaxy S4 miniでのUSBデバッグ有効化
  最初混乱しました。
  全くメニュー上から見つかりません。

  色々と調べたら、なんと!

  設定 -> その他 -> 端末情報

       ビルド番号の部分を7回連続タップすると「デベロッパーモード」にする事が出来ます。3回連続の時点で「デベロッパーになるまであと4ステップです。」と表示されます。

  その後、その他メニューに戻ると「開発者向けオプション」が無事に表示されましたので、USBデバッグをONにしました。

 又、設定>セキュリティ>提供元不明アプリを有効にする事も必要です。

 

  

f:id:m-kei1:20141114161121j:plain

  なんかゲームの隠しコマンドみたいですが、まーデベロッパーモード自体隠しの様ものですね。

 

無事にadb devicesで端末認識するかと思ってたらスマフォ側しか認識しない。

さっきの設定じゃ足りなかったのかとGalaxy Gearを触ってるとSamsung Gear | SAMSUNG Developersがあるとの事。

サイト見てみると

Samsung Gear Application consists of the Host-side Application which runs on Android-based Samsung mobile devices, and the Wearable-side Widget which runs on Tizen-based Samsung Gear devices.

The Host-side Application can be developed in the common Android development environment, whereas, the Wearable-side Widget can be developed with Tizen SDK for Wearable.

In addition, Samsung Accessory SDK is the necessary component for communicating between the Host-side Application and Wearable-side Widget.

と書いてある。

なんと!!

AndroidWearじゃないじゃん。OSがTizenやん・・・またもや・・・よく調べないとダメだね。

まーでもいっっか。と言うことで。

 次に Samsung Gear | SAMSUNG Developers から

・Tizen SDK for Wearable

Samsung Accessory SDK

をセットアップします。

 ドキュメントを読んでいくとこんな感じのアーキテクチャの様だ。

f:id:m-kei1:20141114161203p:plain

 という事で色々あるので次に続きます。