Добавьте следующую строку в ваш манифест Android над тегом приложения:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Тогда вам понадобится активность или служба с таким кодом:
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
onLocationChanged(Location location) {
// put code in here to respond to a change in location
}
onProviderDisabled(String provider) {
// put code in here to respond to GPS being disabled
}
onProviderEnabled(String provider) {
// put code in here to respond to GPS being enabled
}
onStatusChanged(String provider, int status, Bundle extras) {
// put code in here to respond to change in GPS status (e.g. GPS becomes unavailable)
}
});
Редактировать: При звонке LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener()...
это устанавливает новый LocationListener, который слушает GPS. Первое число указывает минимальное количество миллисекунд между каждой проверкой (обратите внимание, что это всего лишь индикатор, система может проверять более / менее часто), а второе число указывает минимальное расстояние, пройденное в метрах между каждой проверкой. Так что если оба равны 0, то GPS будет проверяться постоянно, и новые значения будут отправляться на onLocationChanged()
, как только они станут доступны.
Для получения более подробной информации см. http://developer.android.com/guide/topics/location/obtaining-user-location.html