当前位置: 首页 > 知识库问答 >
问题:

Android:使用FusedLocationProviderClient一次获取位置?

华俊贤
2023-03-14

随着FusedLocationProviderApi被弃用,我很难使用FusedLocationProviderClient在单击按钮后仅一次获得用户的位置。

共有2个答案

薛修能
2023-03-14

新版本的play services location添加了方法getCurrentLocation()

这就是我获得位置的方式

Androidanifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

在我的片段中

private lateinit var fusedLocationClient: FusedLocationProviderClient

然后在获得位置许可代码后,这就是我获取位置的方式

  fusedLocationClient.getCurrentLocation(LocationRequest.PRIORITY_HIGH_ACCURACY, null)
  fusedLocationClient.lastLocation
                .addOnSuccessListener { location: Location? ->
                    // Got last known location. In some rare situations this can be null.
                    if (location != null) {
                        textView.setText(getLocationNameFromLatLon(location.latitude, location.longitude))
                    }
                }
公良俊楚
2023-03-14

我有一个困难的时间使用FusedLocationProviderClient获取用户的位置只有一次...

FusedLocationProviderClient有以下方法

  • getLastPlace()返回位置仅一次
  • 请求位置更新(位置请求,位置回调回调,活套)
  • 请求位置更新(位置请求,PendingIntent回调意图)

其中LocationRequest又具有setNumUpdate(int NumUpdate)方法。通过传递NumUpdate=1,您将获得用户的位置仅一次。

 类似资料:
  • 当接近传感器被激活时,我使用FusedLocationProviderClient来获取设备位置。当用户接近接近传感器时,程序应该得到设备的位置,但是它没有得到必要的代码,因为我认为它卡在. isSucessful()if语句上。

  • 大约两周前,我们的应用程序的几个区域随机停止工作,特别是那些依赖最新位置的区域。这发生在多个设备上,包括真实设备和模拟器。在此之前,它每次都在工作。对我们来说幸运的是,所有停止工作的东西都隐藏在一面旗帜后面,我们能够在生产中禁用它。 我们的位置包装器代码两年来几乎没有被触碰过,在最近唯一一次更改(这是微不足道的)后,它在一个月内运行良好。换句话说,两年来它一直在毫无问题地工作。下面是一些片段。 现

  • 谁能给我建议一种简单快速的方法,只需一次就能得到位置?!

  • 问题内容: 有没有一种方法可以使GPS一次访问,而不必使用不断检查位置更新的弯针? 在我的场景中,我感兴趣的只是查找当前坐标,而不是与GPS卫星的连续连接。有谁知道如何做到这一点?提前致谢。 问题答案: 首先检查最近知道的位置是否是最近的。如果没有,我相信您必须设置onLocationChanged侦听器,但是一旦获得第一个有效位置,就可以随时停止更新流。 加成

  • 问题内容: 关于基本的Android编程,我还有另一个问题: 如何访问GPS以获取正在运行该应用程序的手机的当前位置?检索信息需要多长时间?在这种情况下,GPS可能会被禁用,如何再次启用/禁用它。 必须在andorid清单中授予哪些权限? 问候和感谢您的回答, 诗丹 问题答案: 一些答案: 访问:请参见LocationManager和LocationListener。 权限:android.per

  • 在我的应用程序中,我通过单击按钮将FusedLocationProviderClient的坐标存储到数据库中。问题是,当我重新启动手机或模拟器时,为空,我必须再次单击我订购的按钮才能使其工作。如果是否为空? 在我的按钮处理程序中,我调用,并使用纬度、经度和精度存储到数据库中。 任何帮助赞赏!