gpt4 book ai didi

android - 初始位置中的 FusedLocationClient 与 LocationManager

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:14 26 4
gpt4 key购买 nike

在 Android 中选择 LocationManager 还是 FusedLocationClient 非常简单,只需选择 FusedLocationClient,因为它可以节省电量,并且推荐作为最佳实践。

但是,我处于必须获取设备的“初始位置”或只是当前/最后已知位置的情况。 FusedLocationClient 在 3 种不同的场景中可能认为是 null 的东西。 (see here)。

在设备的实际位置发生变化之前,这不会改变,当然是在请求位置更新时。 ( here )

在 android 框架提供的 LocationManager 中,您只需调用 mLocationManager.getLastKnownLocation(provider); 即可轻松获取最后已知位置,但使用它来监听更新会耗费大量电量。

这里最好的解决方案是什么?两者结合是否合理?如果是,如何仅使用 LocationManager 获取当前位置然后禁用它以节省电量?

最佳答案

你可以通过this document :

private FusedLocationProviderClient mFusedLocationClient;
private LocationRequest mLocationRequest;
mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(60000) ; // 10 seconds, in milliseconds
.setFastestInterval(10000); // 1 second, in milliseconds
if(mFusedLocationClient == null) {
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(mContext);
mFusedLocationClient.requestLocationUpdates(mLocationRequest,
locationCallback,
null /* Looper */);
}
private LocationCallback locationCallback = new LocationCallback(){
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
Location location = locationResult.getLastLocation();
if(location != null) {...you can get updated location
}}
//REMOVE LOCATION UPDATES
mFusedLocationClient.removeLocationUpdates(locationCallback);

关于android - 初始位置中的 FusedLocationClient 与 LocationManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49649432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com