如何使用 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)
}