I am trying to show current latitude and longitude on button click and set it in a textview,
I tried doing this and I saw many tutorials but the problem is when I click the button to show the coordinates nothing happens, and I don't know what I am missing
I implemented this service in build gradle:
implementation 'com.google.android.gms:play-services-ads:19.4.0'
I added these permissions:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
MainActivity code:
public class MainActivity extends Activity implements LocationListener {
Button getLocationBtn;
TextView locationText;
LocationManager locationManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getLocationBtn = (Button)findViewById(R.id.button3);
locationText = (TextView)findViewById(R.id.textView6);
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{
Manifest.permission.ACCESS_FINE_LOCATION
}, 100);
}
getLocationBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getLocation();
}
});
}
@SuppressLint("MissingPermission")
private void getLocation(){
try{
locationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000,5,MainActivity.this);
}
catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onLocationChanged(Location location) {
Toast.makeText(this, "hello" + location.getLatitude() + "," + location.getAltitude(), Toast.LENGTH_LONG).show();
try{
Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getAltitude(),1 );
String address = addresses.get(0).getAddressLine(0);
locationText.setText(address);
} catch (Exception e) {
e.printStackTrace();
}
}