Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get Android GPS location

Cheers, I'm trying to get the current GPS-Location via Android. I followed this Tutorial and Vogellas article aswell. Though it ain't working. When using LocationManager.NETWORK_PROVIDER I'm always getting a latitude of 51 and longitude of 9 - no matter where I stand. When using LocationManager.GPS_PROVIDER, I'm getting nothing at all.

Though Everything works when using GMaps :S No idea why. How can I get the current GPS Location like GMaps does?

Here's my code:

package com.example.gpslocation;  import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.Menu;  public class GPS_Location extends Activity implements LocationListener {  @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_gps__location);      LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); }  @Override public boolean onCreateOptionsMenu(Menu menu) {     // Inflate the menu; this adds items to the action bar if it is present.     getMenuInflater().inflate(R.menu.gps__location, menu);     return true; }  @Override public void onLocationChanged(Location location) {     // TODO Auto-generated method stub      int latitude = (int) (location.getLatitude());     int longitude = (int) (location.getLongitude());      Log.i("Geo_Location", "Latitude: " + latitude + ", Longitude: " + longitude); }  @Override public void onProviderDisabled(String provider) {     // TODO Auto-generated method stub  }  @Override public void onProviderEnabled(String provider) {     // TODO Auto-generated method stub  }  @Override public void onStatusChanged(String provider, int status, Bundle extras) {     // TODO Auto-generated method stub  }  } 
like image 455
Sebastian Avatar asked May 11 '13 14:05

Sebastian


People also ask

Does Android have a location app?

Google Find My Device is a free app that allows you to trace your phone. You can track any device on your Android phone with this software.

Can Android location be tracked?

Even without cell service, Android devices and iPhones can be tracked. Your phone's mapping apps can track your phone's location without an internet connection.


1 Answers

Here's your problem:

int latitude = (int) (location.getLatitude()); int longitude = (int) (location.getLongitude()); 

Latitude and Longitude are double-values, because they represent the location in degrees.

By casting them to int, you're discarding everything behind the comma, which makes a big difference. See "Decimal Degrees - Wiki"

like image 166
Lukas Knuth Avatar answered Oct 04 '22 03:10

Lukas Knuth