Niedawno stworzyłem prostą aplikację, aby uzyskać lokalizację GPS i wyświetlić na telefonie z Androidem. Na początku mogę uzyskać lokalizację po kilku próbach, ale po ponownym zainstalowaniu pliku apk funkcja getLastKnownLocation() zawsze zwraca wartość pustą. Środowiskogetlastknownlocation zawsze zwraca wartość null po ponownym zainstalowaniu pliku APK za pośrednictwem eclipse
Development używane: - API 10 Gingerbread 2.3.6 - dostawca GPS służy
poniżej jest kod zastosowałem w moim android projektu:
public class MyActivity extends MapActivity{
protected void onCreate(Bundle savedInstanceState) {
mapView = (MapView)findViewById(R.id.myTripMap);
mapController = mapView.getController();
mapView.setSatellite(false);
mapView.setStreetView(true);
mapView.displayZoomControls(false);
mapView.setBuiltInZoomControls(true);//
mapView.setClickable(true);
mapController.setZoom(14);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
provider = locationManager.getBestProvider(criteria, true);
location = locationManager.getLastKnownLocation(provider);
updateMyCurrentLoc(location);
locationManager.requestLocationUpdates(provider, 2, 1,locationListener);
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
updateMyCurrentLoc(location);
}
public void onProviderDisabled(String provider){
updateMyCurrentLoc(null);
}
public void onProviderEnabled(String provider){ }
public void onStatusChanged(String provider, int status,
Bundle extras){ }
};
private void updateMyCurrentLoc(Location location) {
if (location != null) {
// other codes to get the address and display
Toast.makeText(getBaseContext(), "provider used : "+provider).show(); //testing purpose
}
else {
str = "No location found";
Toast.makeText(getBaseContext(), str, Toast.LENGTH_SHORT).show();
}
}
}
Może ktoś sugerują możliwe rozwiązanie rozwiązać wartość pustą zwróconą przez getLastKnownLocation()? Każda pomoc zostanie doceniona. Dzięki.
Dzięki. To rozwiązało problem. – Student
To świetny kod. Wielkie dzięki. –
To nie jest świetny kod. Umieszczenie całego kodu wewnątrz try/catch bez żadnego z nich jawnie potrzebującego, to z zasady złe programowanie. Jeśli naprawdę potrzebujesz świetnego kodu, spróbuj tego: https://web.archive.org/web/20100429083435/http://marakana.com/forums/android/android_examples/42.html –