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

6

由于FusedLocationProviderApi已经被弃用,我在使用FusedLocationProviderClient在用户点击按钮后仅获取一次位置时遇到了困难。

2个回答

9
我在使用FusedLocationProviderClient来获取用户位置时遇到了困难,只需要使用getLastLocation()方法来获取位置一次。FusedLocationProviderClient具有以下方法:

LocationRequest 中有 setNumUpdates (int numUpdates) 方法。通过传递 numUpdates = 1,你将只能"获取用户位置一次"


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" />

在我的Fragment中
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))
                    }
                }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接