Make SUPL satellite message constrained
SUPL request can bring up unrestricted network depending on carrier config KEY_SATELLITE_DATA_SUPPORT_MODE_INT, in which case the network is constrained and thus SUPL request needs to be constrained.
Test: data browsing + voice call
Test: reviewed BR
Bug: 339688297
Change-Id: I5010804e43e861a200ca8f5112ba98f11a317812
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 880787e..12495bb 100644
--- a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
+++ b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
@@ -619,7 +619,18 @@
ServiceState state = telephonyManager.getServiceState();
if (state != null && state.isUsingNonTerrestrialNetwork()) {
networkRequestBuilder.removeCapability(NET_CAPABILITY_NOT_RESTRICTED);
- networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE);
+ try {
+ networkRequestBuilder.addTransportType(NetworkCapabilities
+ .TRANSPORT_SATELLITE);
+ networkRequestBuilder.removeCapability(NetworkCapabilities
+ .NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED);
+ } catch (IllegalArgumentException ignored) {
+ // In case TRANSPORT_SATELLITE or NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
+ // are not recognized, meaning an old connectivity module runs on new
+ // android in which case no network with such capabilities will be brought
+ // up, so it's safe to ignore the exception.
+ // TODO: Can remove the try-catch in next quarter release.
+ }
}
}
}