Прослушивание включения / выключения GPS можно выполнить с помощью LocationManager для состояния (включено / отключено) поставщика GPS / сети.Это отличается от GpsSignalListener HERE Android SDK, который предназначен для потери сигнала GPS (например, когда в туннеле) и восстановления (то есть, когда вы выходите из туннеля).
То есть для прослушивания включения / выключенияGPS вашего телефона / эмулятора Android, вам необходимо подписаться на широковещательные сообщения из системы Android и проверить на LocationManager.PROVIDERS_CHANGED_ACTION
.См. Фрагмент кода в разделе «Деятельность»:
@Override
protected void onResume() {
super.onResume();
IntentFilter iFilter = new IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION);
filter.addAction(Intent.ACTION_PROVIDER_CHANGED);
this.registerReceiver(gpsOnOffReceiver, iFilter);
}
private BroadcastReceiver gpsOnOffReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (LocationManager.PROVIDERS_CHANGED_ACTION.equals(intent.getAction())) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean gpsOn = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean networkOn = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gpsOn || networkOn) {
// GPS is ON
Log.d("GPS", "GPS turned ON");
} else {
// GPS is OFF
Log.d("GPS", "GPS turned OFF");
}
}
}
};