- Android Wear | Android Developers
- Android Wear Design Principles
- Building Apps for Wearables | Training
Android Wear と接続するスマホは Android 4.3 以降であることが必要。
1. Synced Notifications
特にアプリ側で何もしなくても、スマホで発行された Notification は Android Wear にも表示されます。
2.x時代と違い、今はさまざまな情報を Notification に表示させられるため、通知の情報がリッチなほうが Wear で確認できる内容が増えるためうれしいです。
Build notifications
2. Voice Actions
音声コマンドを処理するためにアプリを登録します。
例えば、"Ok Google, take a note" でノートアプリが起動するようにできます。
Integrate voice actions
3. Build Wearable Apps
Wear に特化したエクスペリエンスを提供するよう Activity, Service, Sensor などをカスタマイズしましょう。
Create wearable apps
4. Send Data
replication APIs と RPCs を使って、データとアクションをスマホとWear間でやりとりできます。
■ Creating Wearable App
*Andorid Studio 0.8 以降、Gradle 0.12 以降が必要
Wearで実行されるアプリは、センサーやGPUなどハードウェアへアクセスすることができます。
基本的には Android SDK をツカッッタ通常のアプリと同じですが、提供されている機能の量とデザイン、ユーザービリティには大きな違いがあります。
スマホとWear用アプリの主な違いとして、以下のものがあります。
- システムがタイムアウト期間を強制します。Activityを表示している状態でユーザーがなにもインタラクションを行わないと、Wearはスリープ状態になります。スリープから戻ると、先ほどのActivityではなくWearのホーム画面が表示されます。何かを常に表示しなくてはいけない場合、context stream に通知を作成してください。
- Wear用アプリはスマホアプリに比べて、サイズ、機能ともに小さいです。Wearにとって意味のあるものだけを含みます。通常は対応するスマホアプリのサブセットでしょう。一般的には、なるべくスマホで操作し、結果をWearに送るようにします。
- ユーザーはWearに直接アプリをダウンロードするわけではありません。代わりに、スマホアプリ内にWear用アプリをバンドルします。ユーザーがスマホアプリをインストールすると、システムが自動的にWearアプリをインストールします。しかし、開発を目的として、いまだにWearに直接Wearアプリをインストールすることができます。
- Wearアプリは多くの標準 Android API にアクセスできますが、以下の API はサポートしていません。
APIを実際に使う前に、hasSystemFeature() を呼んで機能をWearがサポートしているかどうかチェックすることができます。
■ Creating and Running a Wearable App
Google Play store で公開したい場合、Wear用アプリを内包するスマホアプリ(a companion handheld app)も必要です。Wear は Google Play store をサポートしていません。そのため、ユーザーはスマホアプリをダウンロードします。そうすると、WearにWear用アプリが自動で送られます。
スマホアプリは重たい処理、ネットワーク処理などに向いています。そして、その結果をWearに送るようにします。
*アプリがデバッグキーで署名されている場合、Wearアプリの自動インストールは行われません。リリースキーで署名されている場合だけ動きます。詳細は Packaging Wearable Apps
Include the Correct Libraries
- Notifications
WearアプリからWear上にしか通知を出さない場合、標準のフレームワークAPI(API Level 20)を使えばいいので、mobile module から Support library v4 (or v13)を削除してよい。
- Wearable Data Layer
compile 'com.google.android.gms:play-services-wearable:+'
Wearアプリとスマホアプリで同期したりデータを送るには、Wearable Data Layer API を使う。これには最新の Google Play services が必要。このAPIを使わない場合、wear, mobile 両方の module から依存関係を削除してよい。
- Wearable UI support library
compile 'com.google.android.support:wearable:+'
Wear用にデザインされたUIウィジェットが含まれた unofficial library。
ベストプラクティスを例示しているものであり、利用することが推奨されているが、変更される可能性が高い。ただし、ライブラリがアップデートされてもすでにアプリにコンパイルされているものは壊れない。
■ Creating Custom Layouts
Wear用アプリのレイアウト作成はスマホアプリと同じですが、画面サイズと見やすさを考えてデザインする必要があります。スマホアプリから機能とUIをポーティングしてはいけません。必要な時だけカスタムレイアウトを作るべきです。
Wear用アプリのデザインについては design guidelines を読んでください。
Create Custom Notifications
一般的には、スマホ側で通知を作成し、それをWearに自動同期させます。これにより、一度通知を作成すればさまざまなデバイス(Wearのみならず、AutoやTVも)でそれにあった表示がされます。
もし、通常の通知スタイル(NotificationCompat.BigTextStyle や NotificationCompat.InboxStyle)では要求を達せない場合、Wear上でActivityを開く Notification を発行することができます。この custom notification はWear上でのみ作成・発行ができ、この通知はスマホ側に同期されません。
*Wear上の custom notification の作成には通常の notification API(API Level 20)を使うので、Support Libraryは使いません。
custom notification を作るには、
1. activity の setContentView()でレイアウトを指定する。
2. AndroidManifest.xml で activity に android:exported="true", android:allowEmbedded="true", android:taskAffinity="" を指定する。
<activity android:name="com.example.MyDisplayActivity"
android:exported="true"
android:allowEmbedded="true"
android:taskAffinity=""
android:theme="@android:style/Theme.DeviceDefault.Light" />
3. このActivityを開くPendingIntentを作成する
Intent displayIntent = new Intent(this, MyDisplayActivity.class);
PendingIntent displayPendingIntent = PendingIntent.getActivity(this, 0, displayIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
4. setDesplayIntent() にこの PendingIntent を指定して Notification を作成する
Notification notif = new Notification.Builder(context)
.extend(new Notification.WearableExtender()
.setDisplayIntent(displayPendingIntent)
.setCustomSizePreset(Notification.WearableExtender.SIZE_MEDIUM))
.build();
5. notify() で通知を発行する
Create Layouts with the Wearable UI Library
Android Studio Project ウィザードから Wear プロジェクトを作成すると、Wear用の unofficial UI library が自動で追加されます。
また、以下の依存宣言で build.gradle にライブラリを追加できます。
compile 'com.google.android.support:wearable:+'
- BoxInsetLayout - 画面の形状を認識した FrameLayout。円形画面に入る正方形の中に子Viewを配置する。
- CardFragment - 展開でき、縦にスクロールできるカードのコンテンツを提供する Fragment
- CircledImageView - 円形に囲まれた画像
- ConfirmationActivity - ユーザーがアクションを完了した後に、確認アニメーションを表示するActivity
- DismissOverlayView - long-press-to-dismiss を実装したビュー
- GridViewPager - 縦横両方にページ移動できるレイアウトマネジャー。表示するページを生成するには GridPagerAdapterの実装を提供する
- GridPagerAdapter - GridViewPager のページを提供するアダプター
- FragmentGridPagerAdapter - 各ページとして Fragment を提供する GridPagerAdapter の実装
- WatchViewStub - デバイスの画面の形に応じて、指定されたレイアウトを生成するクラス
- WearableListView - ListView の代替バージョン。Wearの小さい画面用に最適化されている。縦にスロールできるリストを表示し、ユーザーがスクロールを止めたときに近くのアイテムに自動でスナップする。
0 件のコメント:
コメントを投稿