【发布时间】:2020-09-11 13:58:21
【问题描述】:
这就是我在应用中设置模拟位置的方式:
public void startMockLocation(String latitude, String longitude){
FusedLocationProviderClient locationProvider = new FusedLocationProviderClient(getApplicationContext());
locationProvider.setMockMode(true);
Location loc = new Location("gps");
mockLocation = new Location("gps");
mockLocation.setLatitude(Double.valueOf(latitude));
mockLocation.setLongitude(Double.valueOf(longitude));
mockLocation.setAltitude(loc.getAltitude());
mockLocation.setTime(System.currentTimeMillis());
mockLocation.setAccuracy(1f);
mockLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mockLocation.setBearingAccuracyDegrees(0.1f);
mockLocation.setVerticalAccuracyMeters(0.1f);
mockLocation.setSpeedAccuracyMetersPerSecond(0.01f);
}
locationProvider.setMockLocation(mockLocation);
}
但是,我无法使用下面的代码清除模拟位置并重新设置真实位置。我应该写什么?
public void clearMockLocation() {
locationProvider.setMockMode(false);
}
【问题讨论】:
-
代码很好你能在你访问当前位置的地方显示你的代码吗...?
-
您是否获得了必要的许可?
-
@PraveenSP 我没有在任何地方访问当前位置。
-
@JavadDehban 是的,我做到了。
-
荷兰语,如果您没有访问位置而不是您如何知道设备仍在使用模拟位置......即使将模拟设置为 false
标签: java android location android-fusedlocation