如何使用 Fused Location 订阅提供者状态更改事件?

Posted

技术标签:

【中文标题】如何使用 Fused Location 订阅提供者状态更改事件?【英文标题】:How to subscribe to providers status change events using Fused Location? 【发布时间】:2021-05-21 04:52:57 【问题描述】:

Google 建议使用FusedLocationProviderClient 而不是LocationManager

使用LocationManager我可以使用LocationListener接口订阅提供者的更改状态事件:

void onProviderEnabled(@NonNull String provider) 
void onProviderDisabled(@NonNull String provider) 

我怎样才能使用FusedLocationProviderClient

【问题讨论】:

【参考方案1】:

所以回答我自己的问题。

对于FusedLocationProviderClient,我们使用LocationCallback,其中我们有下一个方法,我们可以与LocationManager一起使用来获取提供者的状态

override fun onLocationAvailability(LocationAvailability: LocationAvailability?) 
    super.onLocationAvailability(LocationAvailability)
    val isGpsProviderEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
    val isNetProviderEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)

【讨论】:

以上是关于如何使用 Fused Location 订阅提供者状态更改事件?的主要内容,如果未能解决你的问题,请参考以下文章

Android Fused Location 提供商迷路了

如何在 Service 类中使用 Fused Location Provider?

如何使用 FUSED LOCATION API 优化电池 - Android

如何使用网络在Android中使用Fused Location Provider获取位置?

Fused Location Provider 是不错的选择吗?

Android:使用 Fused Location Provider 检查是不是启用了位置服务