diadia

興味があることをやってみる。自分のメモを残しておきます。

緯度経度情報を取得する(LocationSevicesを使う)

アンドロイド端末から座標データを取得する

必要な要素__パーミッション なんのクラスメソッドを使って取得するのか? ドキュメントの位置はどこか?

座標データの取得方法

概要

  1. パーミッションマニフェストファイルに追記する。

  2. 座標データを取得するにはFusedLocationProviderClient#getLastLocation()メソッドを使う。

手続きは、FusedLocationProviderClientインスタンス(クライアント)を生成し、そのインスタンスでgetLastLocation()メソッドを実行するだけだ。

参考:

現在地の住所を表示する  |  Android デベロッパー  |  Android Developers

FusedLocationProviderClient  |  Android 用 Google API  |  Google Developers

パーミッションを追記

以下をマニフェストファイルに追記する。

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

LocationSevicesをインストール

以下をappレベルのGradleのdependenciesに追記する

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

クライアントの作成方法

https://developer.android.com/training/location/retrieve-current?hl=ja#play-services

lateinit var fusedLocationClient: FusedLocationProviderClient

fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)

位置情報の取得

val coordinates = fusedLocationClient.lastLocation

これで座標データ(位置情報)を取得できる。

その他

マニフェストファイルに追加した情報は、dangerous レベルのパーミッションである。 パーミッションを解除するロジックを埋め込まないと座標点は取得する事ができない。

サンプルコード

GitHub - chiaki1990/GetCoordinatesSample_Kotlin

その他の方法として座標データから住所に変換する

現在地の住所を表示する  |  Android デベロッパー  |  Android Developers