0
私は、GPS位置情報更新を使用するアプリケーションをテストしようとしています。私はデバイスの場所を嘲笑して、私はGPS信号を得ることができないときに屋内で作業しようとしています。私はチュートリアルhereに従っていたが、私のアプリが動いても、それはまだどんな場所の更新も受けていない。アンドロイドデバイスの位置を戸惑う
私のコードで何が間違っているのか誰にも気付くことができますか?
MockLocationProvider mock = new MockLocationProvider(LocationManager.GPS_PROVIDER, this);
mock.pushLocation(-12.34, 23.45);
LocationManager locMgr;
locMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
}
@Override
public void onLocationChanged(Location Loc) {
double lat = Loc.getLatitude();
double lon = Loc.getLongitude();
String l = "Longitude: " + lon + " Latitude: " + lat;
Toast.makeText(getApplicationContext(), l ,Toast.LENGTH_SHORT).show();
}
public class MockLocationProvider {
String providerName;
Context ctx;
public MockLocationProvider(String name, Context ctx) {
this.providerName = name;
this.ctx = ctx;
LocationManager lm = (LocationManager) ctx.getSystemService(
Context.LOCATION_SERVICE);
lm.addTestProvider(providerName, false, false, false, false, false,
true, true, 0, 5);
lm.setTestProviderEnabled(providerName, true);
}
public void pushLocation(double lat, double lon) {
LocationManager lm = (LocationManager) ctx.getSystemService(
Context.LOCATION_SERVICE);
Location mockLocation = new Location(providerName);
mockLocation.setLatitude(lat);
mockLocation.setLongitude(lon);
mockLocation.setAltitude(0);
mockLocation.setTime(System.currentTimeMillis());
mockLocation.setElapsedRealtimeNanos(System.currentTimeMillis());
mockLocation.setAccuracy(2);
lm.setTestProviderLocation(providerName, mockLocation);
}