Loading api/current.txt +14 −0 Original line number Diff line number Diff line Loading @@ -42028,6 +42028,19 @@ package android.telephony { field public static final int BAND_9 = 9; // 0x9 } public final class AvailableNetworkInfo implements android.os.Parcelable { ctor public AvailableNetworkInfo(int, int, java.util.ArrayList<java.lang.String>); method public int describeContents(); method public java.util.List<java.lang.String> getMccMncs(); method public int getPriority(); method public int getSubId(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.AvailableNetworkInfo> CREATOR; field public static final int PRIORITY_HIGH = 1; // 0x1 field public static final int PRIORITY_LOW = 3; // 0x3 field public static final int PRIORITY_MED = 2; // 0x2 } public class CarrierConfigManager { method public android.os.PersistableBundle getConfig(); method public android.os.PersistableBundle getConfigForSubId(int); Loading Loading @@ -43006,6 +43019,7 @@ package android.telephony { method public boolean setVoiceMailNumber(java.lang.String, java.lang.String); method public deprecated void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri); method public deprecated void setVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle, boolean); method public boolean updateAvailableNetworks(java.util.List<android.telephony.AvailableNetworkInfo>); field public static final java.lang.String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL"; field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE"; field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE"; telephony/java/android/telephony/AvailableNetworkInfo.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (c) 2018, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.telephony; parcelable AvailableNetworkInfo; telephony/java/android/telephony/AvailableNetworkInfo.java 0 → 100644 +168 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.telephony; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; /** * Defines available network information which includes corresponding subscription id, * network plmns and corresponding priority to be used for network selection by Alternative Network * Service. */ public final class AvailableNetworkInfo implements Parcelable { /* * Defines number of priority level high. */ public static final int PRIORITY_HIGH = 1; /* * Defines number of priority level medium. */ public static final int PRIORITY_MED = 2; /* * Defines number of priority level low. */ public static final int PRIORITY_LOW = 3; /** * subscription Id of the available network. This value must be one of the entry retrieved from * {@link SubscriptionManager#getOpportunisticSubscriptions} */ private int mSubId; /** * Priority for the subscription id. * Priorities are in the range of 1 to 3 where 1 * has the highest priority. */ private int mPriority; /** * 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. */ private ArrayList<String> mMccMncs; /** * Return subscription Id of the available network. * This value must be one of the entry retrieved from * {@link SubscriptionManager#getOpportunisticSubscriptions} * @return subscription id */ public int getSubId() { return mSubId; } /** * Return priority for the subscription id. Valid value will be within * [{@link AvailableNetworkInfo#PRIORITY_HIGH}, {@link AvailableNetworkInfo#PRIORITY_LOW}] * @return priority level */ public int getPriority() { return mPriority; } /** * Return List of PLMN ids (MCC-MNC) associated with the sub ID. * If this entry is left empty, then the platform software will not scan the network * to revalidate the input. * @return list of PLMN ids */ public List<String> getMccMncs() { return (List<String>) mMccMncs.clone(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mSubId); dest.writeInt(mPriority); dest.writeStringList(mMccMncs); } private AvailableNetworkInfo(Parcel in) { mSubId = in.readInt(); mPriority = in.readInt(); in.readStringList(mMccMncs); } public AvailableNetworkInfo(int subId, int priority, ArrayList<String> mccMncs) { mSubId = subId; mPriority = priority; mMccMncs = new ArrayList<String>(mccMncs); } @Override public boolean equals(Object o) { AvailableNetworkInfo ani; try { ani = (AvailableNetworkInfo) o; } catch (ClassCastException ex) { return false; } if (o == null) { return false; } return (mSubId == ani.mSubId && mPriority == ani.mPriority && (((mMccMncs != null) && mMccMncs.equals(ani.mMccMncs)))); } @Override public int hashCode() { return Objects.hash(mSubId, mPriority, mMccMncs); } public static final Parcelable.Creator<AvailableNetworkInfo> CREATOR = new Creator<AvailableNetworkInfo>() { @Override public AvailableNetworkInfo createFromParcel(Parcel in) { return new AvailableNetworkInfo(in); } @Override public AvailableNetworkInfo[] newArray(int size) { return new AvailableNetworkInfo[size]; } }; @Override public String toString() { return ("AvailableNetworkInfo:" + " mSubId: " + mSubId + " mPriority: " + mPriority + " mMccMncs: " + Arrays.toString(mMccMncs.toArray())); } } telephony/java/android/telephony/TelephonyManager.java +30 −0 Original line number Diff line number Diff line Loading @@ -9576,4 +9576,34 @@ public class TelephonyManager { } return subId; } /** * Update availability of a list of networks in the current location. * * This api should be called to inform AlternativeNetwork Service about the availability * of a network at the current location. This information will be used by AlternativeNetwork * service to decide to attach to the network opportunistically. If an empty list is passed, * it is assumed that no network is available. * 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}. * @param availableNetworks is a list of available network information. * @return true if request is accepted * */ @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges public boolean updateAvailableNetworks(List<AvailableNetworkInfo> availableNetworks) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; boolean ret = false; try { IAns iAlternativeNetworkService = getIAns(); if (iAlternativeNetworkService != null) { ret = iAlternativeNetworkService.updateAvailableNetworks(availableNetworks, pkgForDebug); } } catch (RemoteException ex) { Rlog.e(TAG, "updateAvailableNetworks RemoteException", ex); } return ret; } } telephony/java/com/android/internal/telephony/IAns.aidl +20 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.telephony.AvailableNetworkInfo; interface IAns { Loading Loading @@ -78,4 +79,23 @@ interface IAns { * */ int getPreferredData(String callingPackage); /** * Update availability of a list of networks in the current location. * * This api should be called if the caller is aware of the availability of a network * at the current location. This information will be used by AlternativeNetwork service * to decide to attach to the network. If an empty list is passed, * it is assumed that no network is available. * 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}. * @param availableNetworks is a list of available network information. * @param callingPackage caller's package name * @return true if request is accepted * */ boolean updateAvailableNetworks(in List<AvailableNetworkInfo> availableNetworks, String callingPackage); } Loading
api/current.txt +14 −0 Original line number Diff line number Diff line Loading @@ -42028,6 +42028,19 @@ package android.telephony { field public static final int BAND_9 = 9; // 0x9 } public final class AvailableNetworkInfo implements android.os.Parcelable { ctor public AvailableNetworkInfo(int, int, java.util.ArrayList<java.lang.String>); method public int describeContents(); method public java.util.List<java.lang.String> getMccMncs(); method public int getPriority(); method public int getSubId(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.AvailableNetworkInfo> CREATOR; field public static final int PRIORITY_HIGH = 1; // 0x1 field public static final int PRIORITY_LOW = 3; // 0x3 field public static final int PRIORITY_MED = 2; // 0x2 } public class CarrierConfigManager { method public android.os.PersistableBundle getConfig(); method public android.os.PersistableBundle getConfigForSubId(int); Loading Loading @@ -43006,6 +43019,7 @@ package android.telephony { method public boolean setVoiceMailNumber(java.lang.String, java.lang.String); method public deprecated void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri); method public deprecated void setVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle, boolean); method public boolean updateAvailableNetworks(java.util.List<android.telephony.AvailableNetworkInfo>); field public static final java.lang.String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL"; field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE"; field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE";
telephony/java/android/telephony/AvailableNetworkInfo.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (c) 2018, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.telephony; parcelable AvailableNetworkInfo;
telephony/java/android/telephony/AvailableNetworkInfo.java 0 → 100644 +168 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.telephony; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; /** * Defines available network information which includes corresponding subscription id, * network plmns and corresponding priority to be used for network selection by Alternative Network * Service. */ public final class AvailableNetworkInfo implements Parcelable { /* * Defines number of priority level high. */ public static final int PRIORITY_HIGH = 1; /* * Defines number of priority level medium. */ public static final int PRIORITY_MED = 2; /* * Defines number of priority level low. */ public static final int PRIORITY_LOW = 3; /** * subscription Id of the available network. This value must be one of the entry retrieved from * {@link SubscriptionManager#getOpportunisticSubscriptions} */ private int mSubId; /** * Priority for the subscription id. * Priorities are in the range of 1 to 3 where 1 * has the highest priority. */ private int mPriority; /** * 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. */ private ArrayList<String> mMccMncs; /** * Return subscription Id of the available network. * This value must be one of the entry retrieved from * {@link SubscriptionManager#getOpportunisticSubscriptions} * @return subscription id */ public int getSubId() { return mSubId; } /** * Return priority for the subscription id. Valid value will be within * [{@link AvailableNetworkInfo#PRIORITY_HIGH}, {@link AvailableNetworkInfo#PRIORITY_LOW}] * @return priority level */ public int getPriority() { return mPriority; } /** * Return List of PLMN ids (MCC-MNC) associated with the sub ID. * If this entry is left empty, then the platform software will not scan the network * to revalidate the input. * @return list of PLMN ids */ public List<String> getMccMncs() { return (List<String>) mMccMncs.clone(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mSubId); dest.writeInt(mPriority); dest.writeStringList(mMccMncs); } private AvailableNetworkInfo(Parcel in) { mSubId = in.readInt(); mPriority = in.readInt(); in.readStringList(mMccMncs); } public AvailableNetworkInfo(int subId, int priority, ArrayList<String> mccMncs) { mSubId = subId; mPriority = priority; mMccMncs = new ArrayList<String>(mccMncs); } @Override public boolean equals(Object o) { AvailableNetworkInfo ani; try { ani = (AvailableNetworkInfo) o; } catch (ClassCastException ex) { return false; } if (o == null) { return false; } return (mSubId == ani.mSubId && mPriority == ani.mPriority && (((mMccMncs != null) && mMccMncs.equals(ani.mMccMncs)))); } @Override public int hashCode() { return Objects.hash(mSubId, mPriority, mMccMncs); } public static final Parcelable.Creator<AvailableNetworkInfo> CREATOR = new Creator<AvailableNetworkInfo>() { @Override public AvailableNetworkInfo createFromParcel(Parcel in) { return new AvailableNetworkInfo(in); } @Override public AvailableNetworkInfo[] newArray(int size) { return new AvailableNetworkInfo[size]; } }; @Override public String toString() { return ("AvailableNetworkInfo:" + " mSubId: " + mSubId + " mPriority: " + mPriority + " mMccMncs: " + Arrays.toString(mMccMncs.toArray())); } }
telephony/java/android/telephony/TelephonyManager.java +30 −0 Original line number Diff line number Diff line Loading @@ -9576,4 +9576,34 @@ public class TelephonyManager { } return subId; } /** * Update availability of a list of networks in the current location. * * This api should be called to inform AlternativeNetwork Service about the availability * of a network at the current location. This information will be used by AlternativeNetwork * service to decide to attach to the network opportunistically. If an empty list is passed, * it is assumed that no network is available. * 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}. * @param availableNetworks is a list of available network information. * @return true if request is accepted * */ @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges public boolean updateAvailableNetworks(List<AvailableNetworkInfo> availableNetworks) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; boolean ret = false; try { IAns iAlternativeNetworkService = getIAns(); if (iAlternativeNetworkService != null) { ret = iAlternativeNetworkService.updateAvailableNetworks(availableNetworks, pkgForDebug); } } catch (RemoteException ex) { Rlog.e(TAG, "updateAvailableNetworks RemoteException", ex); } return ret; } }
telephony/java/com/android/internal/telephony/IAns.aidl +20 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.telephony.AvailableNetworkInfo; interface IAns { Loading Loading @@ -78,4 +79,23 @@ interface IAns { * */ int getPreferredData(String callingPackage); /** * Update availability of a list of networks in the current location. * * This api should be called if the caller is aware of the availability of a network * at the current location. This information will be used by AlternativeNetwork service * to decide to attach to the network. If an empty list is passed, * it is assumed that no network is available. * 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}. * @param availableNetworks is a list of available network information. * @param callingPackage caller's package name * @return true if request is accepted * */ boolean updateAvailableNetworks(in List<AvailableNetworkInfo> availableNetworks, String callingPackage); }