[この記事は Ankur Kotwal、デベロッパー アドボケートによる Geo Developers Blog の記事 "Always-on Android Wear apps with the Google Maps API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]
Android Wear アプリの中には、いつでも使用でき、一目で確認できる状態にしておくと便利なものがあります。Google Play サービス 8.1では、Google Maps Android API がアンビエント モードに対応し、 Always-on 機能が実装されます。アンビエント モードでは、マップのスタイルが調整され、シンプルなモノクロ調でマップが表示されます。画面上のマップには、マーカー、オブジェクト、UI コントロールは表示されず、入力できない状態であることが表示されます。カメラ位置とズーム レベルは保持されるので、マップ内のユーザー コンテキストが保たれるのが重要な利点です。
以下のスクリーンショットは、インタラクティブ モードとアンビエント モードでマップがどのように表示されるかを示しています。
マップにアンビエント モードを実装するには、次の手順に従います。
Always-on 機能を使用して Android Wear にマップを表示すれば、マップが一目で確認できます。これらの API の詳細については、このドキュメントとサンプル コードを参照してください。
Posted by Yoshifumi Yamaguchi - Developer Relations Team
Android Wear アプリの中には、いつでも使用でき、一目で確認できる状態にしておくと便利なものがあります。Google Play サービス 8.1では、Google Maps Android API がアンビエント モードに対応し、 Always-on 機能が実装されます。アンビエント モードでは、マップのスタイルが調整され、シンプルなモノクロ調でマップが表示されます。画面上のマップには、マーカー、オブジェクト、UI コントロールは表示されず、入力できない状態であることが表示されます。カメラ位置とズーム レベルは保持されるので、マップ内のユーザー コンテキストが保たれるのが重要な利点です。
以下のスクリーンショットは、インタラクティブ モードとアンビエント モードでマップがどのように表示されるかを示しています。

- targetSDKVersion を 22 以降に設定します。
- 以下の依存関係をアプリの build.gradle に追加して、ウェアラブル端末のサポート ライブラリを追加します
dependencies {
compile 'com.google.android.support:wearable:1.2.0'
provided 'com.google.android.wearable:wearable:1.0.0'
} - ウェアラブル端末の共有ライブラリ エントリをウェアラブル端末のアプリ マニフェストに追加します。
<application>
<uses-libraryandroid:name="com.google.android.wearable"
android:required="false"/>
...</application> - WAKE_LOCKパーミッションを携帯端末とウェアラブル端末のアプリ マニフェストに追加します。
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
- アクティビティで WearableActivityを継承します。するとウェアラブル端末がアンビエント モードになったとき、アンビエント モードから復帰したとき、アンビエント モードで画面がアップデートされたときにそれをアプリに通知するオーバーライドが提供されます。
- アクティビティの onCreate() メソッドで、
setAmbientEnabled()
メソッドを呼び出します。すると、アプリをウォッチ フェイスに戻すのではなく、アンビエント モードにするようフレームワークに通知されます。 - アンビエント モードをサポートするようにマップを設定します。この設定は、アクティビティの XML レイアウト ファイルで
map:ambientEnabled="true" 属性を設定するか、プログラム内で GoogleMapOptions.ambientEnabled(true)
を設定して実行します。すると、アンビエント モードに必要なマップ タイルを事前に読み込むよう API に通知されます。 - アクティビティがアンビエント モードに切り替わるときは、ウェアラブル端末のアクティビティで
onEnterAmbient()
メソッドが呼び出されます。onEnterAmbient()
をオーバーライドし、MapFragment.onEnterAmbient()
またはMapView.onEnterAmbient()
を呼び出します。マップが非インタラクティブなモノクロ調で表示されます。 - アンビエント モードで、
onUpdateAmbient()
をオーバーライドすると、1 分ごとにアプリの表示を更新できます。もっと頻繁に更新しなければならない場合は、このガイドをご覧ください。 - アクティビティがアンビエント モードから復帰するときは、ウェアラブル端末のアクティビティで
onExitAmbient()
メソッドが呼び出されます。onExitAmbient()
をオーバーライドし、MapFragment.onExitAmbient()
またはMapView.onExitAmbient()
を呼び出します。マップが通常の表示に戻り、入力できる状態になります。
Always-on 機能を使用して Android Wear にマップを表示すれば、マップが一目で確認できます。これらの API の詳細については、このドキュメントとサンプル コードを参照してください。
Posted by Yoshifumi Yamaguchi - Developer Relations Team