如何使用 Fused Location 订阅供应商状态变化事件?

How to subscribe to providers status change events using Fused Location?

Google 建议使用 FusedLocationProviderClient 而不是 LocationManager

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

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

如何使用 FusedLocationProviderClient 来实现?

所以回答我自己的问题。

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