无论我的设备位置是打开还是关闭,都可以获取位置。我不是在谈论我们通常用来获取我的位置的网络gps位置,但据我所知,只有在设备位置打开时才会抛出此位置。简单来说,是否可以在设备位置关闭时获取位置?
答案 0 :(得分:0)
是否可以在没有GPS的情况下获得准确的位置?不,不是。
但是,可以使用std::vector<T>::size_type
LocationManagers
NETWORK_PROVIDER
没有GPS,这是非常粗略的估计,并依靠WiFi和蜂窝数据为您提供位置。
答案 1 :(得分:0)
我也面临着这个问题,现在我最终根据自己的逻辑寻找解决方案。
我已经使用FusedLocationProviderClient获取设备位置。并在LocationCallback onLocationResult中覆盖了该位置,它会生成当前位置的地理坐标,并且保存了SharedPreferences,因此无论何时我需要位置,我都会通过“共享首选项”获得该位置。另外,我首先检查的是位置未启用,然后才使用位置保存到SharedPreferences中,因此它不会在新位置上提供旧位置。希望以后会有人。
和Common.current_locaton是Location类对象。
LocationCallback:方法
LocationCallback locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
Common.current_location = locationResult.getLastLocation();
saveLocationToPrefs(locationResult.getLastLocation().getLatitude(),
locationResult.getLastLocation().getLongitude());
}
};
saveLocationToPrefs:
public void saveLocationToPrefs(double latitude, double longitude) {
SharedPreferences locationPrefs = getSharedPreferences(LOCATION_PREFS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = locationPrefs.edit();
editor.putFloat("latitude", (float) latitude);
editor.putFloat("longitude", (float) longitude);
editor.apply();
}