Próbuję znaleźć moją bieżącą lokalizację dla projektu Android. Po załadowaniu aplikacji moja bieżąca lokalizacja jest zawsze pusta. Ustawiłem uprawnienia w manifeście itp. Kiedy znajduję bieżącą lokalizację, zamierzam użyć współrzędnych, aby znaleźć odległości do innych lokalizacji na mapie. Mój fragment kodu znajduje się poniżej. Dlaczego zawsze otrzymuję wartość zerową?Moja aktualna lokalizacja zawsze zwraca wartość null. Jak mogę to naprawić?
locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria crit = new Criteria();
towers = locMan.getBestProvider(crit, false);
location = locMan.getLastKnownLocation(towers);
if (location != null) {
System.out.println("Location is not null!");
lat = (int) (location.getLatitude() *1E6);
longi = (int) (location.getLongitude() * 1E6);
GeoPoint ourLocation = new GeoPoint(lati, longi);
OverlayItem overlayItem = new OverlayItem(ourLocation, "1st String",
"2nd String");
CustomPinpoint custom = new CustomPinpoint(d, MainMap.this);
custom.insertPinpoint(overlayItem);
overlayList.add(custom);
overlayList.clear();
} else {
System.out.println("Location is null! " + towers);
Toast.makeText(MainMap.this, "Couldn't get provider",Toast.LENGTH_SHORT)
.show();
}
Spróbuj uzyskać dostęp do map google bezpośrednio z poziomu aplikacji. Czy to działa - zlokalizować ciebie? po jego zlokalizowaniu uruchamiasz swój kod zgodnie z oczekiwaniami?Czy testujesz na urządzeniu lub emulatorze? –
Testuję na emulatorze, używam API poziomu 15. Nie odnajdzie mnie, zawsze zwróci wartość null. Próbowałem również uzyskać dostęp do aplikacji map Google na emulatorze, ale także nie można znaleźć lokalizacji – devinefergal
używasz nieprawidłowego sposobu postępuj zgodnie z tym https://stackoverflow.com/a/48033659/4997704 –