import
android.Manifest
import
android.content.Context
import
android.content.pm.PackageManager
import
android.location.Location
import
android.location.LocationListener
import
android.location.LocationManager
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
androidx.core.app.ActivityCompat
class
MainActivity : AppCompatActivity() {
private
var locationManager: LocationManager? =
null
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
if
(ActivityCompat.checkSelfPermission(
this
, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this
, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
this
, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
1
)
}
else
{
locationManager?.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0
, 0f, locationListener)
}
}
private
val locationListener = object : LocationListener {
override fun onLocationChanged(location: Location) {
val latitude = location.latitude
val longitude = location.longitude
}
override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {}
override fun onProviderEnabled(provider: String) {}
override fun onProviderDisabled(provider: String) {}
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
when (requestCode) {
1
-> {
if
(grantResults.isNotEmpty() && grantResults[
0
] == PackageManager.PERMISSION_GRANTED) {
locationManager?.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0
, 0f, locationListener)
}
return
}
}
}
}