位置情報サービスを必要とするアプリでは、Google Play 開発者サービスの位置情報 / コンテキスト API を使用することをおすすめします。フレームワーク位置情報 API を使用しているアプリの場合は、最新の Google 機能を活用できるように、Google Play 開発者サービスに移行することが重要です。
アプリで位置情報サービスを利用する場合は、Google Play 開発者サービスの使用をおすすめします。その理由は以下のとおりです。
- Google Play 開発者サービスは、シンプルなインターフェースと洗練された API サーフェスを備えています。
- 望ましいサービス品質(QoS)を指定すると、API が自動的に基盤テクノロジーを管理します。
- Google Play 開発者サービス API は、パフォーマンスと電池消費の両面で最適化されています。
- Google Play 開発者サービス API は、積極的にメンテナンスが行われています。Google は、アルゴリズムの改善と機能の追加を継続的に推進しています。
アプリを更新する
位置情報 / コンテキスト API を使用するようにアプリを更新する手順は次のとおりです。
- プロジェクト内で、Google Play 開発者サービスをセットアップします。
- アプリを更新し、Location Settings API を使用して現在の位置情報の設定を検証します。
- ユーザーが特定のエリアの近くにいるかを識別するタスクやユーザーが何をしているかを推測するタスクのような複雑なタスクに使用するカスタム ロジックをハイレベル API(Geofencing API や Activity Recognition API)に置き換えます。
- フレームワーク位置情報 API を使用している場合は、Fused Location Provider API に置き換えます。
- フレームワーク位置情報 API への参照を削除します。
プロジェクト内で Google Play 開発者サービスをセットアップする
プロジェクトで位置情報 / コンテキスト API を利用できるようにするには、Google Maven リポジトリへの参照を追加して、必要な API に対する依存関係を宣言する必要があります。詳細については、Google Play 開発者サービスをセットアップするをご覧ください。
Location Settings API を使用する
Location Settings API を使用すれば、アプリで望ましい QoS レベルを提供できます。また、システム設定の必要な変更をユーザーにリクエストする際も API に任せられます。アプリで Location Settings API を使用する手順は次のとおりです。
- アプリ マニフェストで位置情報権限をリクエストします。
- 望ましい QoS レベルを指定する
LocationRequest
オブジェクトをセットアップします。 - Location Settings API を使用して、現在の設定をチェックします。
詳細については、位置情報の設定を変更するをご覧ください。サンプルコードについては、Google Play Location サンプルをご覧ください。
カスタム ロジックをハイレベル API に置き換える
Geofencing API や Activity Recognition API などのハイレベル API は、優れたエクスペリエンスを実現するためにアプリが使用できる機能を備えています。しかし、そうした機能が必要とする複雑なロジックは、コーディングとメンテナンスが難しい場合があります。そのようなカスタム ロジックがアプリに含まれている場合は、ハイレベル API を活用するコンポーネントに置き換える必要があります。
実装の詳細については、特定の位置情報 / コンテキスト API のガイドをご覧ください。
フレームワーク位置情報 API を Fused Location Provider API に置き換える
緯度と経度などの位置情報データを取得するには、Fused Location Provider API を使用できます。フレームワーク位置情報 API と同様に、Fused Location Provider API は Location
オブジェクトを使用して地理的位置を表します。この API は、位置情報の更新をリッスンする機能や、直近の位置情報を取得する機能を備えています。Fused Location Provider API はこうしたさまざまな機能を備えているので、アプリの他の部分に対する変更を最小限に抑えつつ、フレームワーク位置情報 API を使用するコンポーネントを置き換える候補として最適です。
直近の位置情報の取得は、デバイス上の任意のクライアントからリクエストされる位置情報データを使用する高速オペレーションであるため、多くのエクスペリエンスの良い出発点になります。定期的に位置情報をトラッキングする場合、アプリは位置情報の更新データの受信をサブスクライブできます。これにより、最新のデータを取得して、複雑なエクスペリエンスを実現することが可能になります。
フレームワーク位置情報 API への参照を削除する
com.google.android.location
パッケージ内のクラスへの参照を、com.google.android.gms.location
パッケージのクラスへの参照に置き換えます(ただし、Fused Location Provider API が使用する Location
クラスへの参照は除きます)。通常は、GPS や Wi-Fi などの各種プロバイダを管理するコンポーネントをアプリから削除できます。位置情報 / コンテキスト API は、それらのプロバイダを自動的に管理します。
アプリをテストする
最新バージョンの Google Play 開発者サービスを使用するアプリを実行するには、Play ストア アプリをインストールしたデバイスで Google アカウントにログインする必要があります。開発目的の場合は、以下のいずれかのオプションを使用できます。
- USB ケーブルを使用して開発環境に接続された物理デバイス。
- Play ストア アプリをインストールしたエミュレータ。
物理デバイスを開発環境に接続する方法については、ハードウェア デバイス上でのアプリの実行をご覧ください。Play ストア アプリをインストールしたエミュレータを作成する方法については、仮想デバイスの作成と管理をご覧ください。