JavaでAndroidアプリ 位置情報取得を取得する(前編)

新しい位置情報の取得方法だよ

みなさん、こんにちは!

身長は「身長」なのだから、「高い」ではなく「長い」と言うべきだと思っているあらたまです。

さて今日は Androidアプリ開発で位置情報を利用したいときの方法をお話ししたいと思います!

今回は開発言語にはJavaを用いています。

Androidアプリでの位置情報の取得方法

以前は位置情報の取得方法として「Location Manager」という方法をつかって開発されていました。

ですがこの方法はAndroid7(APIレべル24)から非推奨となり、 新しい方法として「Google Location Service API」という方法をつかうことが推奨されるようになりました。

Google Location Service APIとは

Google Location Service APIは「Google Play Servie (Google Play開発者サービス)」を介して、 位置情報を取得します。

LocationManagerに比べて、APIの使いかたがシンプルであり、精度が高く、消費電力も低くなっています。

つかう手順

Google Location Serviceは下記の5つの手順で使います。

設定

  • マニフェストファイルに位置情報を利用することを追記
  • ビルドファイルの依存ライブラリを追加

プログラミング

  • 位置情報の利用が許可されているかチェック
  • LocationClientクラスのインスタンスを生成
  • 位置情報の取得方法を指定
  • 位置情報の追跡開始

プロジェクトを作成する

それでは、まず今日の実験用にプロジェクトを作成しましょう!

Android Studioを起動したら「Start a new Android Studio Project」をクリックします。

「Empty Activity」をクリックします。

プロジェクトの情報をお好みで入力します。
「Minimal API level」の欄は24以上を選択しておきましょう。

プロジェクトが作成されました!
一度アプリを起動して、動作を確認しておきましょう。

Hello World と表示されればオッケーです。

位置情報利用の権限を設定

まず最初に、このアプリが位置情報の利用を要求することを記述します。

AndroidManifest.xmlに下記を追記します。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

ビルドファイルの依存ライブラリを追加する

次にアプリをコンパイルするときに必要な部品(依存ライブラリ)の記述に GooglePlay位置情報サービスの部品(ライブラリ)を追加します。

「build.gradle(Module app)」に下記を追記します。

implementation 'com.google.android.gms:play-services-location:16.0.0'

ここで一度プロジェクトをリビルドをしてみましょう。
「Build」メニューから「Rebuild Project」をクリックします。

リビルドしたらエラーが表示される場合

お使いの環境によっては下記のようにエラーが出るかもしれません。 一か所赤い波線が引かれていますね。

波線の部分にマウスカーソルを合わせると、メッセージが表示されます。

これはさきほど追記した「play-services-location」ライブラリと、 「appcompat-v」ライブラリで使われているAPIのバージョンが異なるためです。

そこで使う「appcompat-v」ライブラリのバージョンを古くしてあげることで、使われるAPIのバージョンを一致させます。

「appcompat-v」ライブラリのバージョンを「28.0.0」から「26.1.0」に変更します。

同じ理由で、「CompileSdkVersion」と「TargetSdkVersion」を「28」から「26」に下げます。

右上に出現した「Sync Now」をクリックしてあげると変更内容が反映されます。
※もしも「Sync Now」が見当たらない場合はもう一度リビルドしてもOKです。

赤色の波線が消えて、エラーが回避されました!

今回はここまでです!

位置情報を使用する準備ができましたので、次回は位置情報を取得するプログラミングをしていきたいと思います。

次回へ続く。