Guide transport type for emergency connection
Add interface(FWK->QNS) to inform preferred tranport type which is required for emergency data connection setup. Bug: 242935332 CTS-Coverage-Bug: 244513375 Test: Android build Change-Id: Ieab62a917a90c6198c051996df6471cb30f29c31
This commit is contained in:
@@ -13976,6 +13976,7 @@ package android.telephony.data {
|
||||
ctor public QualifiedNetworksService.NetworkAvailabilityProvider(int);
|
||||
method public abstract void close();
|
||||
method public final int getSlotIndex();
|
||||
method public void reportEmergencyDataNetworkPreferredTransportChanged(int);
|
||||
method public void reportThrottleStatusChanged(@NonNull java.util.List<android.telephony.data.ThrottleStatus>);
|
||||
method public final void updateQualifiedNetworkTypes(int, @NonNull java.util.List<java.lang.Integer>);
|
||||
}
|
||||
|
||||
@@ -27,4 +27,5 @@ interface IQualifiedNetworksService
|
||||
oneway void createNetworkAvailabilityProvider(int slotId, IQualifiedNetworksServiceCallback callback);
|
||||
oneway void removeNetworkAvailabilityProvider(int slotId);
|
||||
oneway void reportThrottleStatusChanged(int slotId, in List<ThrottleStatus> statuses);
|
||||
oneway void reportEmergencyDataNetworkPreferredTransportChanged (int slotId, int transportType);
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ public abstract class QualifiedNetworksService extends Service {
|
||||
private static final int QNS_REMOVE_ALL_NETWORK_AVAILABILITY_PROVIDERS = 3;
|
||||
private static final int QNS_UPDATE_QUALIFIED_NETWORKS = 4;
|
||||
private static final int QNS_APN_THROTTLE_STATUS_CHANGED = 5;
|
||||
private static final int QNS_EMERGENCY_DATA_NETWORK_PREFERRED_TRANSPORT_CHANGED = 6;
|
||||
|
||||
private final HandlerThread mHandlerThread;
|
||||
|
||||
@@ -192,6 +193,20 @@ public abstract class QualifiedNetworksService extends Service {
|
||||
Log.d(TAG, "reportThrottleStatusChanged: statuses size=" + statuses.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* The framework calls this method when the preferred transport type used to set up
|
||||
* emergency data network is changed.
|
||||
*
|
||||
* This method is meant to be overridden.
|
||||
*
|
||||
* @param transportType transport type changed to be preferred
|
||||
*/
|
||||
public void reportEmergencyDataNetworkPreferredTransportChanged(
|
||||
@AccessNetworkConstants.TransportType int transportType) {
|
||||
Log.d(TAG, "reportEmergencyDataNetworkPreferredTransportChanged: "
|
||||
+ AccessNetworkConstants.transportTypeToString(transportType));
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the qualified networks provider is removed. The extended class should
|
||||
* implement this method to perform cleanup works.
|
||||
@@ -237,6 +252,13 @@ public abstract class QualifiedNetworksService extends Service {
|
||||
}
|
||||
break;
|
||||
|
||||
case QNS_EMERGENCY_DATA_NETWORK_PREFERRED_TRANSPORT_CHANGED:
|
||||
if (provider != null) {
|
||||
int transportType = (int) message.arg2;
|
||||
provider.reportEmergencyDataNetworkPreferredTransportChanged(transportType);
|
||||
}
|
||||
break;
|
||||
|
||||
case QNS_REMOVE_NETWORK_AVAILABILITY_PROVIDER:
|
||||
if (provider != null) {
|
||||
provider.close();
|
||||
@@ -332,6 +354,14 @@ public abstract class QualifiedNetworksService extends Service {
|
||||
mHandler.obtainMessage(QNS_APN_THROTTLE_STATUS_CHANGED, slotIndex, 0, statuses)
|
||||
.sendToTarget();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportEmergencyDataNetworkPreferredTransportChanged(int slotIndex,
|
||||
@AccessNetworkConstants.TransportType int transportType) {
|
||||
mHandler.obtainMessage(
|
||||
QNS_EMERGENCY_DATA_NETWORK_PREFERRED_TRANSPORT_CHANGED,
|
||||
slotIndex, transportType).sendToTarget();
|
||||
}
|
||||
}
|
||||
|
||||
private void log(String s) {
|
||||
|
||||
Reference in New Issue
Block a user