diff options
| -rwxr-xr-x | api/current.txt | 5 | ||||
| -rw-r--r-- | telephony/java/android/telephony/AvailableNetworkInfo.java | 50 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 10 |
3 files changed, 47 insertions, 18 deletions
diff --git a/api/current.txt b/api/current.txt index 482a221ee80d..5746403fd541 100755 --- a/api/current.txt +++ b/api/current.txt @@ -42099,9 +42099,10 @@ package android.telephony { } public final class AvailableNetworkInfo implements android.os.Parcelable { - ctor public AvailableNetworkInfo(int, int, java.util.List<java.lang.String>); + ctor public AvailableNetworkInfo(int, int, @NonNull java.util.List<java.lang.String>, @NonNull java.util.List<java.lang.Integer>); method public int describeContents(); - method public java.util.List<java.lang.String> getMccMncs(); + method @NonNull public java.util.List<java.lang.Integer> getBands(); + method @NonNull public java.util.List<java.lang.String> getMccMncs(); method public int getPriority(); method public int getSubId(); method public void writeToParcel(android.os.Parcel, int); diff --git a/telephony/java/android/telephony/AvailableNetworkInfo.java b/telephony/java/android/telephony/AvailableNetworkInfo.java index b407b2a03bc4..8286e1e1712b 100644 --- a/telephony/java/android/telephony/AvailableNetworkInfo.java +++ b/telephony/java/android/telephony/AvailableNetworkInfo.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.NonNull; import android.os.Parcel; import android.os.Parcelable; @@ -62,11 +63,22 @@ public final class AvailableNetworkInfo implements Parcelable { /** * Describes the List of PLMN ids (MCC-MNC) associated with mSubId. * If this entry is left empty, then the platform software will not scan the network - * to revalidate the input. + * to revalidate the input else platform will scan and verify specified PLMNs are available. */ private ArrayList<String> mMccMncs; /** + * Returns the frequency bands associated with the {@link #getMccMncs() MCC/MNCs}. + * Opportunistic network service will use these bands to scan. + * + * When no specific bands are specified (empty array or null) CBRS band (B48) will be + * used for network scan. + * + * See {@link AccessNetworkConstants} for details. + */ + private ArrayList<Integer> mBands; + + /** * Return subscription Id of the available network. * This value must be one of the entry retrieved from * {@link SubscriptionManager#getOpportunisticSubscriptions} @@ -91,10 +103,20 @@ public final class AvailableNetworkInfo implements Parcelable { * to revalidate the input. * @return list of PLMN ids */ - public List<String> getMccMncs() { + public @NonNull List<String> getMccMncs() { return (List<String>) mMccMncs.clone(); } + /** + * Returns the frequency bands that need to be scanned by opportunistic network service + * + * The returned value is defined in either of {@link AccessNetworkConstants.GeranBand}, + * {@link AccessNetworkConstants.UtranBand} and {@link AccessNetworkConstants.EutranBand} + */ + public @NonNull List<Integer> getBands() { + return (List<Integer>) mBands.clone(); + } + @Override public int describeContents() { return 0; @@ -105,6 +127,7 @@ public final class AvailableNetworkInfo implements Parcelable { dest.writeInt(mSubId); dest.writeInt(mPriority); dest.writeStringList(mMccMncs); + dest.writeList(mBands); } private AvailableNetworkInfo(Parcel in) { @@ -112,12 +135,16 @@ public final class AvailableNetworkInfo implements Parcelable { mPriority = in.readInt(); mMccMncs = new ArrayList<>(); in.readStringList(mMccMncs); + mBands = new ArrayList<>(); + in.readList(mBands, Integer.class.getClassLoader()); } - public AvailableNetworkInfo(int subId, int priority, List<String> mccMncs) { + public AvailableNetworkInfo(int subId, int priority, @NonNull List<String> mccMncs, + @NonNull List<Integer> bands) { mSubId = subId; mPriority = priority; mMccMncs = new ArrayList<String>(mccMncs); + mBands = new ArrayList<Integer>(bands); } @Override @@ -135,14 +162,15 @@ public final class AvailableNetworkInfo implements Parcelable { } return (mSubId == ani.mSubId - && mPriority == ani.mPriority - && (((mMccMncs != null) - && mMccMncs.equals(ani.mMccMncs)))); + && mPriority == ani.mPriority + && (((mMccMncs != null) + && mMccMncs.equals(ani.mMccMncs))) + && mBands.equals(ani.mBands)); } @Override public int hashCode() { - return Objects.hash(mSubId, mPriority, mMccMncs); + return Objects.hash(mSubId, mPriority, mMccMncs, mBands); } public static final Parcelable.Creator<AvailableNetworkInfo> CREATOR = @@ -161,9 +189,9 @@ public final class AvailableNetworkInfo implements Parcelable { @Override public String toString() { return ("AvailableNetworkInfo:" - + " mSubId: " + mSubId - + " mPriority: " + mPriority - + " mMccMncs: " + Arrays.toString(mMccMncs.toArray())); + + " mSubId: " + mSubId + + " mPriority: " + mPriority + + " mMccMncs: " + Arrays.toString(mMccMncs.toArray()) + + " mBands: " + Arrays.toString(mBands.toArray())); } } - diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 27720495bfc8..22614a2be192 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -10243,11 +10243,11 @@ public class TelephonyManager { /** * Update availability of a list of networks in the current location. * - * This api should be called by opportunistic network selection app to inform - * OpportunisticNetwork Service about the availability of a network at the current location. - * This information will be used by OpportunisticNetwork service to decide to attach to the - * network opportunistically. - * If an empty list is passed, it is assumed that no network is available. + * This api should be called to inform OpportunisticNetwork Service about the availability + * of a network at the current location. This information will be used by OpportunisticNetwork + * service to decide to attach to the network opportunistically. If an empty list is passed, + * it is assumed that no network is available and will result in disabling the modem stack + * to save power. * Requires that the calling app has carrier privileges on both primary and * secondary subscriptions (see {@link #hasCarrierPrivileges}), or has permission * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}. |