指定した緯度、経度を地図に表示させる
Intentオブジェクトを生成して、地図のURIを渡してやれば地図を表示することができる。uriの構成は、"geo:緯度,経度"であるのでintent=Intent(Intent.ACTION_VIEW, uri)でIntentオブジェクトを生成することができる。
//緯度、経度をもとにURI文字列を作成する val uriStr = "geo:${_latitude},${_longitude}" //URIオブジェクトを生成する val uri = Uri.parse(uriStr) //Intentオブジェクトを生成 val intent = Intent(Intent.ACTION_VIEW, uri) //アクティビティを起動する startActivity(intent)
//LocationManagerオブジェクトを取得する val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager val locationListener = GPSLocationListener() //位置情報の更新 locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 0, Of, locationListener)
GPSの機能を利用するために許可を与える <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
permissonの許可をユーザーに聞かないといけない件
androidのアプリでは、マニフェストファイルにpermisson許可を与える記述に加えて、ユーザーにpermisson許可を得る必要があるようだ。
そこでonCreateメソットでまずアプリの許可がされているかまず確認する。そして許可が得られていない場合には、許可を得るロジックを記述する必要がある。
アプリの許可がされているかどうかを確認する方法はActivityCompat.checkSelfPermisson()メソッドを使う。メソッドの引数は2つある。applicationContextとManifest.permission.ACCESS_FINE_LOCATIONである。ちなみにACCESS_FINE_LOCATIONはマニフェストファイルに記述したキーワードである。
戻り値はPERMISSION_GRANTED又はPERMISSION_DENIEDが返される。