I am getting address and lat and long in android 13 and also working lower version
fusedLocationProviderClient?.lastLocation?.addOnCompleteListener(this) { task -> val location: Location? = task.result
Log.d("SDsadsad ", "sdsdit " + location)
if (location != null) {
val geocoder = Geocoder(this, Locale.getDefault())
var addresses: List<Address>? = null
try {
addresses =
geocoder.getFromLocation(location.latitude, location.longitude, 1)
Log.d("SDsadsad ", "sdsd " + addresses.toString())
langitude = addresses!![0].latitude.toString()
longitude = addresses!![0].longitude.toString()
address = addresses!![0].getAddressLine(0).toString()
pin = addresses!![0].postalCode.toString()
val telephone = this.getSystemService(TELEPHONY_SERVICE) as TelephonyManager
phone = telephone.line1Number.toString()
val dev_id = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
device_id = dev_id.toString()
brand = Build.BRAND.toString()
model = Build.MODEL.toString()
val str_dateTime = DateFormat.format("yyyy-MM-dd HH:mm:ss", Date())
alldataShowWaterMark = "User Name: "+Constant.USER_FULL_NAME+"\n"+
"Langitude: "+langitude+"\n"+
"Longitude: "+longitude+"\n"+
"Address: "+address+"\n"+
"PinCode: "+pin+"\n"+
"Phone No.: "+phone+"\n"+
"Device Id: "+device_id+"\n"+
"Brand Name: "+brand+"\n"+
"Model No.: "+model+"\n"+
"Data On Time: "+str_dateTime+"\n"
} catch (e: IOException) {
e.printStackTrace()
Log.d("SDsadsad ", "exception " + e.toString())
}
}
}
Here is an example of how you can get last known location from LocationActivity. It will be available from
LocationActivity.lastLocation. Here I do not provide location permission handling, just extension functionpermissionNotGrantedto check if app has necessary permissions.