Merge "UpdateAvailableNetworks apis"
am: c3d4693f79
Change-Id: I39ad91da318f6f199d355cd9f0b602c174859efb
This commit is contained in:
@@ -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);
|
||||
@@ -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";
|
||||
|
||||
19
telephony/java/android/telephony/AvailableNetworkInfo.aidl
Normal file
19
telephony/java/android/telephony/AvailableNetworkInfo.aidl
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* 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;
|
||||
168
telephony/java/android/telephony/AvailableNetworkInfo.java
Normal file
168
telephony/java/android/telephony/AvailableNetworkInfo.java
Normal file
@@ -0,0 +1,168 @@
|
||||
/*
|
||||
* 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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.internal.telephony;
|
||||
|
||||
import android.telephony.AvailableNetworkInfo;
|
||||
|
||||
interface IAns {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user