사용자가 현재 위치를 조롱해야하는 Android 앱이 있습니다. 아래 코드는 사용자가 녹색 버튼을 눌러 위치를 조롱하게하는 코드입니다.Android : 모의 위치가 몇 초 후에 원래 위치로 돌아갑니다.
아래의 코드는 "녹색 버튼"을 누르면 위치가 위조되기 시작합니다.
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);
}
});
지도에 마커를 놓고 녹색 버튼을 누릅니다. 위치 조롱이 시작됩니다. 그 "가짜 위치"가 나의 현재 위치가됩니다.
그러나 10-20 초 후에 조롱은 끝납니다. 내 "실제 위치"가 현재 위치가됩니다. 온라인에서 많은 예제를 보았고 위치를 조롱하기 위해 사용하는 것과 동일한 코드를 사용합니다. 나는 왜 이것이 내 애플 리케이션과 함께 발생하는지 모르겠다. 어떤 도움을 주시면 감사하겠습니다.
완벽하게 작동했습니다. 고맙습니다 –