使用 fusedlocationapi 获取位置,而无需在一段时间后请求位置更新

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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 请求持续位置更新。

以上是关于使用 fusedlocationapi 获取位置,而无需在一段时间后请求位置更新的主要内容,如果未能解决你的问题,请参考以下文章

使用 fusedlocationapi 获取位置,而无需在一段时间后请求位置更新

可以使用 Android 的 FusedLocationApi 获取新数据(确切的当前位置)吗?

android模拟位置不适用于locationservices.fusedlocationapi

在Android中使用FusedLocationApi时如何获取Location的模式

为啥 FusedLocationApi.getLastLocation 为空

FusedLocationApi 有时无法提供正确的位置