Geo Location
[Link]
implementation("[Link]:play-services-location:21.3.0")
[Link]
<uses-permission android:name="[Link]"/>
<uses-permission android:name="[Link].ACCESS_COARSE_LOCATION" />
<uses-permission android:name="[Link].ACCESS_FINE_LOCATION" />
<uses-permission android:name="[Link].ACCESS_BACKGROUND_LOCATION" />
activity_location.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
xmlns:app="[Link]
xmlns:tools="[Link]
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LocationActivity"
android:orientation="vertical">
<TextView
android:id="@+id/txtLatitude"
android:background="#FFEB3B"
android:textColor="#000"
android:padding="10dp"
android:textSize="25sp"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/txtLongitude"
android:background="#FFEB3B"
android:textColor="#000"
android:padding="10dp"
android:textSize="25sp"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/txtAddress"
android:background="#FFEB3B"
android:textColor="#000"
android:padding="10dp"
android:textSize="25sp"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/txtCity"
android:background="#FFEB3B"
android:textColor="#000"
android:padding="10dp"
android:textSize="25sp"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/txtCountry"
android:background="#FFEB3B"
android:textColor="#000"
android:padding="10dp"
android:textSize="25sp"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnGetLocation"
android:text="Get Location"
android:backgroundTint="#000"
android:padding="20dp"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
[Link]
package [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
import [Link]
class LocationActivity : AppCompatActivity() {
private lateinit var binding: ActivityLocationBinding
private val REQUEST_CODE = 100
private lateinit var fusedLocationProviderClient: FusedLocationProviderClient
override fun onCreate(savedInstanceState: Bundle?) {
[Link](savedInstanceState)
binding = [Link](layoutInflater)
setContentView([Link])
fusedLocationProviderClient = [Link](this)
[Link]{
getLastLocation()
}
}//onCreate
@SuppressLint("SetTextI18n")
private fun getLastLocation() {
if ([Link](this, [Link].ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
[Link] { location ->
location?.let {
try {
Log.d("Location***","Location: "+[Link]+"..."+[Link])
val geocoder = Geocoder(this, [Link]())
val addresses: List<Address>? = [Link]([Link], [Link], 1)
val address = addresses?.get(0)
[Link] = "Lattitude: ${address!!.latitude}"
[Link] = "Longitude: ${[Link]}"
[Link] = "Address: ${[Link](0)}"
[Link] = "City: ${[Link]}"
[Link] = "Country: ${[Link]}"
} catch (e: IOException) {
[Link]()
}
}
}
} else {
askPermission()
}
}//getLastLocation
private fun askPermission() {
[Link](this,
arrayOf([Link].ACCESS_FINE_LOCATION), REQUEST_CODE)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults:
IntArray) {
[Link](requestCode, permissions, grantResults)
if (requestCode == REQUEST_CODE) {
if ([Link]() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d("Location***","Last Location")
getLastLocation()
} else {
[Link](this, "Please provide the required permission", Toast.LENGTH_LONG).show()
}
}
}
}//LocationActivity
=====================================================================================