AndroidWear Huawei WatchでWatchFaceを作成

目的

Huawei Watch用のWatchFaceを作成する
開発機のUSBポートが1つでAndroid母艦を接続中のため、WearデバイスはBluetooth経由でデプロイ/デバッグしたい

関連記事

WatchFaceの作成

Android StudioでNew Project -> Wear (API21) にチェックを入れ Activity で Watch Faceを選択
この状態で時刻のみの時計表示がされるサンプルアプリケーションとなるため、手を加えて盤面に画像表示と日付を表示しました。
下記では画像表示部分のみ記載させて頂きました。

res/drawableに配置したpngファイルを表示

// メンバ変数に追加
Bitmap mBackgroundBitmap;

public void onCreate(SurfaceHolder holder) {
...
            Drawable backgroundDrawable = resources.getDrawable(R.drawable.[pngファイル名], null);
            mBackgroundBitmap = ((BitmapDrawable) backgroundDrawable).getBitmap();
...
}

public void onDraw(Canvas canvas, Rect bounds) {
            canvas.drawRect(0, 0, bounds.width(), bounds.height(), mBackgroundPaint); // 元から存在する画面クリア
            canvas.drawBitmap(mBackgroundBitmap, X座標, Y座標, null);
...
}

完成図

thumb_IMG_3274_1024

母艦Androidを通じてBluetoothでデプロイ

補足

Huawei Watchはクレードルを通じてUSB接続可能ですが、USBポートがWear側にない機種であったりUSBポートが限られている場合の方法となります。
後述しますが速度面や安定性であまり手軽と言えないため個人的には有線派です。
thumb_IMG_3276_1024

Bluetooth vs USBのデプロイ速度

3回づつ試しましたが下記のような時間差となりました。
またBluetoothの場合しばらく時間を置くと切断されているケースもありました。

Bluetooth
Build完了後 Choose a running device からの時間
Uploading 0秒 -> install開始 42秒 -> install完了 56秒

USBクレードル
Build完了後 Choose a running device からの時間
Uploading 0秒 -> install開始 3秒 -> install完了 18秒

Huawei Watchの設定

  1. ビルド番号を7回クリックで、開発者向けオプションを表示しておく
  2. 開発者向けオプション -> ADBデバッグ を有効にする
  3. 開発者向けオプション -> Bluetooth経由でデバッグ を有効にする

Android端末 (スマホ/タブレットの設定)

こちらも開発者向けオプションが有効でADBデバッグが出来る状態にしておきます。
1. Android Wearアプリを立ち上げる (Wearとペアリング時に使ったアプリです)
2. Bluetooth経由のデバッグを有効にする

thumb_IMG_3272_1024

ここから先は adb コマンドを利用して localhostの指定ポートに Wearとの接続口を作成します。
途中でよく分からない状態になったら下記の「調子の悪い場合」を実施して下さい。

adb コマンドの場所

MacでAndroid Studioをインストールすると、下記場所に adb コマンドが入っています。

/home/[ユーザアカウント]/Library/Android/sdk/platform-tools

なので以降の作業はターミナルを開いてWorkDirを下記で進めます。

$ cd ~/Library/Android/sdk/platform-tools

現在の状態確認 (接続済みデバイス一覧を表示)

Android Studioで Runする際にどのデバイスで実行するか聞いてくるリストです

$ ./adb devices -l
List of devices attached
EBOKBC277928           device usb:336658432X product:WW_K01H model:K01H device:K01H

localhostの指定ポートに Wearとの接続口を作成

$ ./adb forward tcp:4444 localabstract:/adb-hub
$ ./adb connect localhost:4444
connected to localhost:4444

現在の状態確認 (接続済みデバイス一覧を表示)

下記のようにならない場合はWear側・スマホ/タブレット側の設定を確認の上、下記「調子悪い場合」の実施をお薦めします。

$ ./adb devices -l
List of devices attached
EBOKBC277928           device usb:336658432X product:WW_K01H model:K01H device:K01H
localhost:4444         device product:sturgeon model:HUAWEI_WATCH device:sturgeon

Android Studioでデプロイを実施

選択肢に出てきました、実行デバイスを選択
bluetooth01

デプロイ完了までUSB接続に比べて 2~3倍程時間が必要と感じました、USB Hubなりあれば繋いだ方が良いかもです…
Bluetooth02

作成したWatchFaceのインストール完了
thumb_IMG_3275_1024

調子悪い場合

一度デプロイ出来たのになぁと思ったら 次回実行時にOffline と怒られたりした場合下記コマンドを実行してやり直し

$ ./adb kill-server
$ ./adb devices -l
List of devices attached

リストが空になったらAndroidタブレットのUSBを抜き差し後にもう一度 adb forward… の設定を行う

番外編 アプリケーションの削除

$ ./adb -s localhost:4444 uninstall パッケージ名
Success

参考記事

Bluetooth経由でのデプロイは下記記事を参考にさせて頂きました、ありがとうございます!
http://androidlover.net/android-wear/moto-360/moto360-bluetooth-debug-mode-on.html

公式記事


https://developer.android.com/intl/ja/training/wearables/apps/bt-debugging.html

投稿者プロフィール

takashi
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております

機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。
個人ブログではRaspberryPiを利用したシステムやロボット作成も
実施しております。

スカイアーチネットワークスで一緒に働きましょう!

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て 2010年よりスカイアーチネットワークスに在籍しております 機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。 個人ブログではRaspberryPiを利用したシステムやロボット作成も 実施しております。 スカイアーチネットワークスで一緒に働きましょう!