【问题标题】:Android: Use FusedLocationProviderClient to get location once?Android:使用 FusedLocationProviderClient 获取一次位置?
【发布时间】:2018-06-08 16:54:17
【问题描述】:

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

【问题讨论】:

    标签: android location fusedlocationproviderapi android-fusedlocation


    【解决方案1】:

    我很难使用 FusedLocationProviderClient 一次获取用户的位置...

    FusedLocationProviderClient有以下方法

    其中LocationRequest 又具有setNumUpdates (int numUpdates) 方法。通过传递numUpdates = 1,您将“只获得一次用户的位置”

    【讨论】:

      【解决方案2】:

      新版play-services-location新增方法getCurrentLocation()

      这就是我获取位置的方式

      AndroidManifest.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))
                          }
                      }
      

      【讨论】:

        猜你喜欢
        • 2021-02-01
        • 2022-10-18
        • 2018-02-14
        • 2011-06-11
        • 2019-10-05
        • 2017-12-13
        • 2019-09-29
        相关资源
        最近更新 更多