无论位置是打开还是关闭,我都希望获得位置

时间:2018-04-24 10:47:16

标签: android

无论我的设备位置是打开还是关闭,都可以获取位置。我不是在谈论我们通常用来获取我的位置的网络gps位置,但据我所知,只有在设备位置打开时才会抛出此位置。简单来说,是否可以在设备位置关闭时获取位置?

2 个答案:

答案 0 :(得分:0)

是否可以在没有GPS的情况下获得准确的位置?不,不是。

但是,可以使用std::vector<T>::size_type LocationManagers

获取COARSE位置
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();
    }