Я надеялся, что кто-то может пролить свет на это. Я пытаюсь понять, почему вдруг мой код из 2.2 не будет работать с 2.3. Я немного озадачен. Это код, который работает, но теперь выбрасывает исключение нулевого указателя.Геолокация Android работает в 2.2, но не 2.3
@Override
public void onStart(Intent intent, int startId) {
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location l){
Log.i("MYSERVICE", "LocationChanged " + l);
}
public void onStatusChanged(String provider, int status, Bundle Extras) {}
public void onProviderEnabled(String provider){
Log.i("MYSERVICE", "ProviderEnabled " + provider);
}
public void onProviderDisabled(String provider) {}
};
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
super.onStart(intent, startId);
String location = getLocation();
}
public String getLocation() {
String provider = LocationManager.GPS_PROVIDER;
Location location = lm.getLastKnownLocation(provider);
Double lat = location.getLatitude();
Log.i("lat", lat.toString());
double lng = location.getLongitude();
String writeString = lat+"&"+lng;
return writeString;
}
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Я также использую эмулятор 2.3. Любая помощь будет принята с благодарностью, приветствия!
Это просто неправильно. Из [docs] (http://developer.android.com/reference/android/location/LocationManager.html): Если minTime больше 0, LocationManager может потенциально отдыхать за миллисекунды minTime между обновлениями местоположения для экономии энергии. Если minDistance больше 0, местоположение будет передаваться только в том случае, если устройство перемещается с помощью счетчиков minDistance. ** Чтобы получать уведомления как можно чаще, установите оба параметра равными 0. ** –
Почему вы проголосовали отрицательно? Да, это правда, что для получения уведомлений как можно чаще вы должны установить оба значения 0, но на 2.3 Gingerbread НЕ РАБОТАЕТ !!!! Я пробовал это, а на 2.2 (Froyo) работал, но на 2.3 не работал. – Alin
Я проголосовал за то, что он не работает. Он работает на эмуляторе, он работает на моем устройстве, и, согласно документам, он работал с API уровня 1. Если вы собираетесь утверждать, что документация просто неверна, было бы лучше предоставить некоторые доказательства , В противном случае лучше всего предположить, что что-то не так с кодом или неправильно с устройством. –