アプリケーションでを使用しており、それに 2 つのプロバイダー (および)LocationListener
を割り当てています。このリスナーには 4 つのコールバック ( 、、および) があります。GPS_PROVIDER
NETWORK_PROVIDER
onLocationChanged
onStatusChanged
onProviderEnabled
onProviderDisabled
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);
}