-
Notifications
You must be signed in to change notification settings - Fork 0
2014年8月定例会 Android Wear & Google Glassの最新動向
2014/08/21 Android 定例発表会
https://www.android-group.jp/event/event32.html
19:00 - 19:05 開会挨拶 (8月定例会コーディネータ:近藤昭雄)
- 処理装置も入ってるメガネ
- Glass 今は第3世代
- 耳の後ろにCEマーク
- 640 x 360 ピクセル
- 自分の視界のはしっこにディスプレイがある感じ
- タッチパッド:スワイプバック/スワイプフォワード/スワイプダウン
- ボイスコマンド
- タイムラインというUIを持っている
- viewpagerのように過去未来を遷移
- カード
- タップするとカードに対応したメニュー表示
- Mirror API or GDKを利用
- Google Server ⇔ Glasswear MirrorAPI
- GlassとGoogle Serverは分からないプロトコルで通信している
- Glasswear ⇔ ユーザ ⇔ Glass
- OAuth2.0で認証してJSONでデータを送受信するRESTfulなAPI
- アップデートが発表されていないので使うことないんじゃないのか
- Glassの位置情報取得、位置情報更新、GlassからGlasswearに操作イベント送信、情報を送信
- 使用制限が 1000 req/day。Subscriptionsを使うと、ValidなSSL証明書が必要になる
- 2013/11に公開
- Android SDKに加え、GDKのライブラリを利用
- 開発アプリのインストール
- adbデバッグを有効化 (Turn on debug)
- 開発PCとUSBケーブルを接続
- ボイスコマンド
- xmlでトリガーなどを指定
- Googleが認証したアプリしか候補に出ない
- 新しいパーミッション、Developmentにすれば、認可してないアプリも画面に出てくる
- Activityを使うMODE
- Glassのimmersiveだよってことを、AndroidManifestに定義すると、GlassのUIで表示される
- タイムラインの中にカードを追加するMODE
- Serviceから操作
- 種類
- RemoteView
- Surface:SurfaceViewを使ったパターンに近い
- スマホではない!画面が触れない
- あくまでもタッチパネルで操作することを忘れずに
-
機内モードの有効・無効が出来なくなった
-
adbモードでairplayを投げる?
-
アプリのアンインストール
-
adb任せ。adb uninstallで削除
-
adb shell pm list packages
-
写真の自動バックアップ
-
ネットにつながってたら、勝手にGoogle+にアップしちゃう(おせっかい)
-
Googleアカウントを開発用にした方がいい!!
-
恐怖のアップデート
-
自動でアップデートがかかる(ネットつながる環境)
-
アップデートかかる前提で開発は進めた方が良い…
-
アップデートを回避するには?
-
On-Head Detectionを有効にして、Glassを装着し続けること(無理やww)
-
月1ペースでアップデートが繰り返されている
-
バージョンアップ追加機能
-
ウインク検知
-
Contextual Voice Commands
-
Webカメラの接続
-
消えたTimelineManager(XE16)
-
勝手にバージョンアップしちゃうので、エラーだらけに。。
- Android Wearプロトコルへの対応
- Glasswearプラットフォームの開放
- Android Lへの移行
- Material DesignはGlass UIにどのように影響するか??
- 2014/06にAndroid Wearの正式版が発表
- パートナー企業開発のAndroid Wearアプリも増えている
-
ウェアラブルに特化したAndroid
-
代表的な3つの特徴
-
Notification
-
音声入力
-
ユーザが作ったアプリがインストール出来る
-
対応デバイスが既に発売中
-
LG
-
モトローラ (まだ買えない。円形時計)
-
サムスン
-
スマホ・タブレットと連動した動作
-
ウェア ⇔ ハンドヘルド うまく連携
-
ペアリング
-
ex) ハンドヘルドに届いた通知 → ウェアに転送。通知がウェアで確認出来る
-
Android Wear対応アプリの状況
-
対応アプリは少しずつ増加傾向
-
対応アプリの例
-
Facebookメッセンジャー
-
いいね、返信する(音声入力)
-
PayPalアプリ
-
Start Shopping → 決済をその場で。領収書が通知で。
-
セカイフォン
-
ウェアでアプリ起動 → 翻訳など
- Android SDK、IDE、Android Wear System Image or Android Wear実機、Android 4.3以上のハンドヘルド
-
通知の表示
-
Notification Builderで作成。managerでnotifyメソッドで発行
-
compatがちゃんとついたものを使わないとちゃんと動作しない
-
通知のカスタマイズ
-
画像表示、長い文章の場合の最適化、通知のグルーピング
-
通知のアクション
-
スワイプで電話発信(Intent)。addAction
-
音声入力
-
RemoteInputのBuilderを使って、Action.Buiderに渡し、notification発行
-
WearableExtenderなどを使う
-
パッケージング
-
GooglePlayアプリ公開時に要注意
-
ハンドヘルド用アプリBuild → ウェア用モジュールも込めてあげる。lapk
-
ユーザがGooglePlayでダウンロードしようとすると、同梱されてアプリが落ちてきて、ペアリングしてればウェア実機にも入る
-
build.gradleで定義する
-
データの送受信
-
ハンドヘルドとウェアアプリ間の通信
-
Data Layer API: スマホとウェアラブル間のデータ同期
-
Message API: スマホとウェアラブル間メッセージング
-
リファレンス
-
Android Wear 開発者ドキュメント
-
通知機能(≠Android WEar)に関する書籍
-
通知機能プログラミングガイド
- WearアプリのUI/UXはシンプルに
- バッテリー持ちには配慮を!
- 普及には、コンテンツの充実が必須!!
- 可愛らしいアイルーが常時画面で踊っている
- 他のアプリが起動すると自動でk消える
- タッチすると自作アプリのランチャー起動
- ウォッチフェース終了で表示されなくなる
-
WatchFaceに連動
-
WatchFaceActivity → マスコットアプリ → ランチャアプリ
-
WatchFace起動時にOnResume。pause時にOnPause
-
マスコットの表示
-
WindowManagerクラスのaddViewを用いてアプリケーションレイヤーの上に表示する
-
表示レイヤー
-
TYPE_SYSTEM_ALERT
-
バッテリーなどのシステム警告レイヤー
-
Animation
-
animation-listタグを用いる
-
GIFでも試したけど、GIFを使うメリットは無かった
-
タッチ処理
-
イベント処理
-
関連ありそうなイベント
-
OnResume, OnPause連動。
-
ACTION_POWER_CONNCTEDなど
-
Alermを用いて時間と連動
-
WatchFaceに連動
-
常に表示
-
android.permission.RECEIVE_BOOT_COMPLETEDでServiceを自動起動し常に常駐(バッテリーにやさしくない)
-
ジェスチャーに応じて表示する
-
バッテリ連動
-
時間と連動
-
Ambientの判定
-
isInteractive()でAmbientと判定することもできる
-
実装例
-
レイヤーの追加処理
-
タッチ処理を実装するならFocusが取得出来るレイヤーにする
-
AnimationのOn/Off - WatchFaceに連動してServiceへ通知
-
タッチ処理
-
falseを返さないと他のViewにタッチできない
-
マスコットアプリについて
-
かっこよければOK、かわいければOK
-
LGはおすすめしない
-
高すぎる
-
カッコ悪い
-
壊れやすい
-
バッテリがもたない(体感で1日程度。使い方によっては3時間程度で切れる)
-
充電がめんどくさい
-
買うべき理由
-
ハッカーだから
20:10 - 20:30 4.Android Wear の watch face アプリ作ってみた & 正式対応時のAPI予測 講演:株式会社uPhyca 代表取締役 あんざい ゆき様(@yanzm)
slideshareを見てね
- bit.ly/1oY7zUO
-
タグとをセットすると、watchface一覧にActivityが出てくる
-
Ambientの検知
-
IntentFilter、BroadcastReceiver。
-
watch faceのライフサイクル
-
onCreate -> onStart -> onResume -> Ambientに移行 -> onPause -> onStop
-
別のwatch faceに切り替え -> onDestory
-
Trap!!!!
-
通常:TextView.setText -> onLayout(), onMeasure(), onDraw()
-
Ambient:TextView.setText -> onDraw()しか呼ばれない
-
時計に重ねるviewはmatch_parentでpaddingで表示調整
-
Samsung Gear LiveではAmbient時に半透明が使えない
-
Phone側 -> DataApiを利用して、wear側でDataApi.DataListener
-
Google+のAndroid Wear Developerで宣伝したら良い反応
-
正式対応
-
techcrunchの記事
-
現状の限界
-
充電などのアイコン位置を変えられない
-
プリインのwatch faceは変更出来ている。出来るようになるんじゃないか
-
カードの大きさが変えられない。
-
プリイン(ry
-
ガイドライン
-
watch faceって単なるActivity
-
ほぼなんでも出来る
-
app widgetよりかなり自由
-
電池へのインパクト大
-
プリインはwatch faceはAmbientは分単位 → 電池のために描画を減らす
-
プリインはwatch faceはAmbientは白黒 → ドキュメントで電池節約するよう言われるかも?
bit.ly/1wuaQMe
アプリ:toStar(友情証明アプリ) 言葉の代わりにスターを贈るアプリ:つまりYo
ラリーカウント機能:スターを返しあった回数カウント 制限時間:30分以内に返さないとスターがゼロになる
友達を証明するには! いつでも、すぐに、どこまでも続けないと!
Android wearの特性
- えげつないほどの通知レベル
- 気づかないと言い訳通用しないくらい。待ち合わせとか便利
- でも操作性には難あり
- フリック&全面タップ以上のことは難しい
toStarは本日8/21リリースしているはず!
-
顔認識機能を当面禁止 → プライバシー問題
-
勝手に作る
-
通常のSDKで顔認証:FaceDetector
-
FaceDetector + SurfaceViewでいい感じのリアルタイム顔認識
-
認識しない!FaceDetectionListenerの、android.hardware.Camera.Face[].lengthが常に0
-
FaceDetectorは顔に焦点があった場合に顔を識別
-
Glassは固定焦点カメラなので顔検出に適用されない
-
OpenCV + NDK + GDKで試す
-
VoiceTrigger: Search a Restraurant
-
現在地からの距離や座席数など
-
それぞれのMenuで、電話やナビやマップなど
-
ネットワーク接続失敗してたらエラー画面表示
-
注意したこと
-
CardScrollView + CardScrollAdapterなどGDKで提供されているView
-
小さい画面に最適化してくれたのがCardなはず
-
Menu
-
少ない動作で色々提供してくれる
-
2重のMenu表示はしないようにした
-
アイコンがGlass仕様じゃない
-
白黒な感じがいいっぽい
-
VoiceTriggerが長くて反応しない
-
Search a Restaurantの発音が難しすぎるw
-
やりたいこと
-
Voice Triggerの日本語対応していきたい
-
時計をワンタッチするだけで、ニセの着信が鳴るように操作するアプリ
-
利用シーン
-
離席したい会議、飲み会、合コンで抜け出したいとき
-
スマホがポケットにあってもならせるから、より自然にw
-
使い方
-
MobileとWearどちらかの操作で通知(着信開始ボタン)を表示
-
使いたい時に押下、着信
-
Wear端末の色々
-
Wear端末をドッグに差しているときVibrateはオフになる
-
Notification表示時、setVibrate()を指定していても、ドッグ差してるとならない
-
Notificationの背景がぼやける
-
WearのNotification背景の2つの設定方法のうち、setLargeIcon()でぼやける
-
bitmapをcreateしてsetするとぼやけない
-
未接続時、通知をタップすると「エラーが発生しました」
-
クラウドファウンディング
くるくるディスプレイを見せてもらった
閉会挨拶 (8月定例会コーディネータ:近藤昭雄)