【问题标题】:I want to get location no matter whether location is on or off无论位置是打开还是关闭,我都想获取位置
【发布时间】:2018-08-01 12:16:44
【问题描述】:

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

【问题讨论】:

  • Is it possible to get the location when device location is off? - 简而言之,没有。
  • 你的问题和这个差不多——“没有口鼻也能呼吸”??
  • 对不起,先生,我是堆栈溢出的新手。我也是安卓新手。
  • 知道其实我对此一无所知。意味着我不知道我该如何继续?
  • 如果 GPS 关闭,您可以从 celuler 网络收集位置。布杰森 vai?否则是不可能的。

标签: android


【解决方案1】:

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

但是可以使用 LocationManagers NETWORK_PROVIDER 获得 COARSE 位置

String locationProvider = LocationManager.NETWORK_PROVIDER;
locationManager.requestLocationUpdates(locationProvider, 0, 0, locationListener);

如果没有 GPS,这是非常粗略的估计,并且依靠 WiFi 和蜂窝数据来为您提供位置。

【讨论】:

    【解决方案2】:

    我也面临这个问题,现在我最终以我自己的逻辑寻找这个问题的解决方案。

    我使用 FusedLocationProviderClient 来获取设备位置。并在 LocationCallback onLocationResult overried 中生成当前位置的地理坐标,并且我保存了 SharedPreferences,因此每当我需要位置时,我都会通过 Shared Preferences 获得该位置。此外,我首先检查位置是否未打开,然后我才使用保存到 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();
        }
    

    【讨论】:

      猜你喜欢
      • 2015-07-31
      • 2020-09-26
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多