Android:使用FusedLocationProviderClient获取一次位置



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

我很难使用fusedlocationproviderclient来获取用户的位置...

fusedlocationProviderClient具有以下方法

  • 返回位置的getLastLocation()"仅一次"
  • requestLocationupdates(LocationRequest请求,位置Callback Callback,Looper Looper)
  • requestLocationupdates(locationRequest请求,pendingIntent callbackintent)

thineRequest依次具有setNumupdates(int numupdates)方法。通过传递numUpdates = 1,您将"仅获取一次用户的位置"

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

最新更新