質問は簡単です。特定のプロバイダーが有効になっているときにロケーションリスナーのonProviderEnabled()メソッドが呼び出されるには、そのリスナーが同じプロバイダーからの更新を既に要求している必要がありますか?
たとえば、ネットワークプロバイダーのロケーションマネージャーにロケーション更新を登録する場合、次のようになります。
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,
0, locationListener);
リスナーにはonProviderEnabled()メソッドがあります。
@Override
public void onProviderEnabled(String provider) {
Log.d(TAG, provider + " provider enabled"); }
GPSロケーションプロバイダーをオンにした場合、onProviderEnabledが呼び出されますか?
私が経験したことから、GPSプロバイダーからの更新を受信するためにロケーションリスナーも登録されていない限り、それは呼び出されません。このようになっている場合は、GPSとネットワークプロバイダーの両方に登録して、有効になったことを通知する必要があります。
まだ有効になっていないロケーションプロバイダーからの更新を登録しても大丈夫ですか?