Expose NetworkRegistrationInfo.getNrState() as public API

ConnectivityService is going to become a mainline module which
will not able to access hidden APIs. DataConnectionStat needs
to get the NR 5G state of the mobile data network for checking
if the network type is 5G or not. API in NetworkRegistrationInfo
is suggested to replace the original one in ServiceState. Thus,
expose it as a public API to support it.

Bug: 171183530
Test: make update-api ; m
Test: atest CtsTelephonyTestCases
Change-Id: I965499792286de4f1447559be66ca4be80bd0e6f
This commit is contained in:
Chiachang Wang
2020-10-23 09:58:18 +08:00
parent 806eae49ff
commit d32aa193fd
4 changed files with 3 additions and 4 deletions

View File

@@ -47669,6 +47669,7 @@ package android.telephony {
method @NonNull public java.util.List<java.lang.Integer> getAvailableServices();
method @Nullable public android.telephony.CellIdentity getCellIdentity();
method public int getDomain();
method public int getNrState();
method @Nullable public String getRegisteredPlmn();
method public int getTransportType();
method public boolean isRegistered();

View File

@@ -45837,6 +45837,7 @@ package android.telephony {
method @NonNull public java.util.List<java.lang.Integer> getAvailableServices();
method @Nullable public android.telephony.CellIdentity getCellIdentity();
method public int getDomain();
method public int getNrState();
method @Nullable public String getRegisteredPlmn();
method public int getTransportType();
method public boolean isRegistered();

View File

@@ -49,7 +49,6 @@ public class DataConnectionStats extends BroadcastReceiver {
private SignalStrength mSignalStrength;
private ServiceState mServiceState;
private int mDataState = TelephonyManager.DATA_DISCONNECTED;
private int mNrState = NetworkRegistrationInfo.NR_STATE_NONE;
public DataConnectionStats(Context context, Handler listenerHandler) {
mContext = context;
@@ -96,7 +95,7 @@ public class DataConnectionStats extends BroadcastReceiver {
: regInfo.getAccessNetworkTechnology();
// If the device is in NSA NR connection the networkType will report as LTE.
// For cell dwell rate metrics, this should report NR instead.
if (mNrState == NetworkRegistrationInfo.NR_STATE_CONNECTED) {
if (regInfo != null && regInfo.getNrState() == NetworkRegistrationInfo.NR_STATE_CONNECTED) {
networkType = TelephonyManager.NETWORK_TYPE_NR;
}
if (DEBUG) Log.d(TAG, String.format("Noting data connection for network type %s: %svisible",
@@ -153,7 +152,6 @@ public class DataConnectionStats extends BroadcastReceiver {
@Override
public void onServiceStateChanged(ServiceState state) {
mServiceState = state;
mNrState = state.getNrState();
notePhoneDataConnectionState();
}

View File

@@ -370,7 +370,6 @@ public final class NetworkRegistrationInfo implements Parcelable {
* Get the 5G NR connection state.
*
* @return the 5G NR connection state.
* @hide
*/
public @NRState int getNrState() {
return mNrState;