Mam aplikację na Androida, w której potrzebuję użytkownika, aby kpić z ich bieżącej lokalizacji. Poniżej znajduje się kod, którego używam, a następnie naciśnij zielony przycisk, aby rozpocząć kpiny z ich lokalizacji.Android: Mock Lokalizacja zmienia się z powrotem na oryginalny po kilku sekundach
Poniższy kod rozpoczyna symulację lokalizacji po naciśnięciu "zielonego przycisku".
greenButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.addTestProvider(LocationManager.GPS_PROVIDER,
"requiresNetwork" == "",
"requiresSatellite" == "",
"requiresCell" == "",
"hasMonetaryCost" == "",
"supportsAltitude" == "",
"supportsSpeed" == "",
"supportsBearing" == "",
Criteria.POWER_LOW,
Criteria.ACCURACY_FINE);
Location newLocation = new Location(LocationManager.GPS_PROVIDER);
newLocation.setLatitude(fakeLocation.getLatitude());
newLocation.setLongitude(fakeLocation.getLongitude());
newLocation.setAccuracy(fakeLocation.getAccuracy());
newLocation.setTime(System.currentTimeMillis());
newLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
lm.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true);
lm.setTestProviderStatus(LocationManager.GPS_PROVIDER,
LocationProvider.AVAILABLE,
null, System.currentTimeMillis());
lm.setTestProviderLocation(LocationManager.GPS_PROVIDER, newLocation);
}
});
Po umieszczeniu znacznika na mapie i naciśnięciu zielonego przycisku. Rozpoczęcie kpiny z lokalizacji. Ta "fałszywa lokalizacja" staje się moją bieżącą lokalizacją.
Ale po około 10-20 sekundach kpiny właśnie się kończą. Moja "prawdziwa lokalizacja" staje się moją bieżącą lokalizacją. Widziałem wiele przykładów online i używają tego samego kodu, którego używam do kpiny z lokalizacji. Nie wiem, dlaczego tak się dzieje z moją aplikacją. Każda pomoc będzie doceniona.
To zadziałało idealnie! Dziękuję Ci –