【发布时间】:2021-05-17 18:00:16
【问题描述】:
我们可以使用 GPS 天线来控制轮询速度吗?就像每 10 秒和每 1 秒一样。假设用电量是可控的。我只是想尽快得到准确的位置。
【问题讨论】:
标签: huawei-mobile-services huawei-developers
我们可以使用 GPS 天线来控制轮询速度吗?就像每 10 秒和每 1 秒一样。假设用电量是可控的。我只是想尽快得到准确的位置。
【问题讨论】:
标签: huawei-mobile-services huawei-developers
我们可以使用不是 google API 的 Android 默认 LocationManager 类。
还有华为 Mapkit LocationManager
val locationManager = HuaweiLocationManager(this) locationManager.registerLocationUpdates(onSuccess = { viewModel.updateCurrentLocation(it) })
并以不同的速度订阅更新。
fun registerLocationUpdates(
interval: Long = 10000,
onSuccess: ((location: Location?) -> Unit)? = null,
onFail: ((locationAvailability: LocationAvailability?) -> Unit)? = null
) {
val mLocationRequest = LocationRequest()
// Set the location update interval (in milliseconds).
mLocationRequest.interval = interval
// Set the weight.
mLocationRequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
// Create location callback
if (mLocationCallback == null)
mLocationCallback = createLocationCallback(onSuccess, onFail)
// Request location update
mFusedLocationProviderClient.requestLocationUpdates(
mLocationRequest,
mLocationCallback,
Looper.getMainLooper()
)
.addOnSuccessListener {
// Requesting location updates is started successfully.
LogUtils.d("LocationKit -> Start Location Updates Successfully")
}
.addOnFailureListener { exception ->
// Failed to start location updates.
LogUtils.d("LocationKit -> Start Location Updates Failed with exception: ${exception.localizedMessage}")
}
}
【讨论】: