【问题标题】:Use fusedlocationapi to get location without requesting for location updates after a time interval使用 fusedlocationapi 获取位置,而无需在一段时间后请求位置更新
【发布时间】:2017-02-20 01:21:17
【问题描述】:

我在 android 中使用谷歌的 fusedlocationapi 来获取用户当前的纬度和经度,现在根据我的用例,我只想在用户单击按钮时获取用户的当前位置,现在我认为不是请求位置更新在一个时间间隔之间一次又一次地我可以使用不同的东西,这样我的用户的电池就不会耗尽太多,我也在 SO 和其他社区上搜索了很多帖子,但没有发现任何有用的东西。现在谁能告诉我如何找到适合我的用例的东西。

【问题讨论】:

    标签: android geolocation location fusedlocationproviderapi android-fusedlocation


    【解决方案1】:

    您可以在获得位置后删除位置更新

      LocationRequest mLocationRequest = new LocationRequest();
      mLocationRequest.setInterval(1000);
      mLocationRequest.setFastestInterval(1001);
      mLocationRequest.setNumUpdates(1);
      mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
      LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, new com.google.android.gms.location.LocationListener() {
                @Override
                public void onLocationChanged(Location location) {
                    LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
                  // save your location here
    
                }
            });
    

    【讨论】:

    • 是的,我也想过同样的事情,但问题是当用户再次点击按钮时,我想获取更新的位置,但根据你的代码,它会给出最后一个旧位置,因为现在你不是请求位置更新。如果我想错了方向,请纠正我。
    • 当用户再次点击时,您只需再次启动此功能并保存更新的位置
    • 是的,但获取位置通常需要大约 5 秒的时间,但我不希望有那么多延迟,当您单击自动检测时,如何在实际应用程序(例如 Zomato 等)中他们立即获取位置?没有时间延迟??
    • 我正在等待您的回复@Ahmed Abidi
    • 我怀疑 Zomato 应用在 onResume 中使用 PRIORITY_NO_POWER 请求持续位置更新。
    猜你喜欢
    • 2016-06-25
    • 2017-05-14
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    相关资源
    最近更新 更多