diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index 56ba5bbc72af1..fb2b961fce77c 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -457,6 +457,7 @@ public class GnssLocationProvider implements LocationProviderInterface { if (mDownloadXtraDataPending == STATE_PENDING_NETWORK) { xtraDownloadRequest(); } + // Always on, notify HAL so it can get data it needs sendMessage(UPDATE_NETWORK_STATE, 0 /*arg*/, network); } }; @@ -468,6 +469,12 @@ public class GnssLocationProvider implements LocationProviderInterface { */ private final ConnectivityManager.NetworkCallback mSuplConnectivityCallback = new ConnectivityManager.NetworkCallback() { + @Override + public void onAvailable(Network network) { + // Specific to a change to a SUPL enabled network becoming ready + sendMessage(UPDATE_NETWORK_STATE, 0 /*arg*/, network); + } + @Override public void onLost(Network network) { releaseSuplConnection(GPS_RELEASE_AGPS_DATA_CONN);