diff options
| -rw-r--r-- | services/core/java/com/android/server/location/gnss/GnssLocationProvider.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java index 164f4b4833d0..e653f0466863 100644 --- a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java @@ -1616,6 +1616,10 @@ public class GnssLocationProvider extends AbstractLocationProvider implements updateEnabled(); restartLocationRequest(); } + + // Re-register network callbacks to get an update of available networks right away. + mNetworkConnectivityHandler.unregisterNetworkCallbacks(); + mNetworkConnectivityHandler.registerNetworkCallbacks(); } @Override diff --git a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java index dc1f4ddb19b9..02bdfd5bcb56 100644 --- a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java +++ b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java @@ -301,6 +301,10 @@ class GnssNetworkConnectivityHandler { mConnMgr.registerNetworkCallback(networkRequest, mNetworkConnectivityCallback, mHandler); } + void unregisterNetworkCallbacks() { + mConnMgr.unregisterNetworkCallback(mNetworkConnectivityCallback); + } + /** * @return {@code true} if there is a data network available for outgoing connections, * {@code false} otherwise. |