parent
1f06a7c95b
commit
da2c34ceac
@ -0,0 +1,56 @@
|
||||
package fr.iut.mapping
|
||||
|
||||
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 android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.content.ContextCompat
|
||||
|
||||
|
||||
class LocationListener(private val context: Context) : LocationListener {
|
||||
|
||||
var latitude: Double = 0.0
|
||||
get() = field
|
||||
var longitude: Double = 0.0
|
||||
get() = field
|
||||
|
||||
private val locationManager: LocationManager =
|
||||
context.getSystemService(Context.LOCATION_SERVICE) as LocationManager
|
||||
|
||||
companion object {
|
||||
const val permission = Manifest.permission.ACCESS_FINE_LOCATION
|
||||
}
|
||||
|
||||
override fun onLocationChanged(location: Location) {
|
||||
latitude = location.latitude
|
||||
longitude = location.longitude
|
||||
}
|
||||
|
||||
override fun onProviderEnabled(provider: String) {}
|
||||
|
||||
override fun onProviderDisabled(provider: String) {}
|
||||
|
||||
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {}
|
||||
|
||||
fun start() {
|
||||
if (ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED
|
||||
) {
|
||||
locationManager.requestLocationUpdates(
|
||||
LocationManager.GPS_PROVIDER,
|
||||
0L,
|
||||
0f,
|
||||
this
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun stop() {
|
||||
locationManager.removeUpdates(this)
|
||||
}
|
||||
}
|
Loading…
Reference in new issue