0

アプリケーションでを使用しており、それに 2 つのプロバイダー (および)LocationListenerを割り当てています。このリスナーには 4 つのコールバック ( 、、および) があります。GPS_PROVIDERNETWORK_PROVIDERonLocationChangedonStatusChangedonProviderEnabledonProviderDisabled

GPSをオフまたはオンにするonProviderEnabledと、onProviderDisabledコールバックが機能するため、GPSに問題はありません。問題は、WIFI の状態を変更すると、これらのコールバックが呼び出されないことです。

私はそれに関するいくつかの情報を見つけ、デバイスにインターネットがあるかどうかを判断する方法を作成しましたNETWORK_PROVIDER。その後、私はこれを管理できません。

ネットワーク プロバイダーを正しく構成するにはどうすればよいですか?

コード:

プロバイダーの割り当て:

  isGpsEnabled = locationManager.isProviderEnabled(GPS_PROVIDER);
  isNetworkEnabled = locationManager.isProviderEnabled(NETWORK_PROVIDER) && isNetworkAvailable();

  if(!isGpsEnabled && !isNetworkEnabled) {
    this.gpsAware.onGpsError("Your Gps providers are not available");
    throw new Exception("Verify your GPS or Network connection");
  } else {
    if(isNetworkEnabled)
      addProvider(NETWORK_PROVIDER);
    if(isGpsEnabled)
      addProvider(GPS_PROVIDER);

addProvider メソッド:

private void addProvider(String provider) {
    //Check permissions
    locationManager.requestLocationUpdates(
        provider,
        MIN_TIME_BW_UPDATES,
        MIN_DISTANCE_CHANGE_FOR_UPDATES, locationListener);
}
4

0 に答える 0