Merge "new carrier id APIs"

am: 3d23b90874

Change-Id: Ifaa9e4e2f4ec3ef9703c4bf58e8452a9920b350a
This commit is contained in:
Chen Xu
2018-01-17 20:38:27 +00:00
committed by android-build-merger
3 changed files with 142 additions and 0 deletions

View File

@@ -40772,6 +40772,8 @@ package android.telephony {
method public int getSimState();
method public int getSimState(int);
method public java.lang.String getSubscriberId();
method public int getSubscriptionCarrierId();
method public java.lang.String getSubscriptionCarrierName();
method public java.lang.String getVisualVoicemailPackageName();
method public java.lang.String getVoiceMailAlphaTag();
method public java.lang.String getVoiceMailNumber();
@@ -40816,6 +40818,7 @@ package android.telephony {
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";
field public static final java.lang.String ACTION_SHOW_VOICEMAIL_NOTIFICATION = "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION";
field public static final java.lang.String ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED = "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED";
field public static final int APPTYPE_CSIM = 4; // 0x4
field public static final int APPTYPE_ISIM = 5; // 0x5
field public static final int APPTYPE_RUIM = 3; // 0x3
@@ -40836,6 +40839,8 @@ package android.telephony {
field public static final int DATA_DISCONNECTED = 0; // 0x0
field public static final int DATA_SUSPENDED = 3; // 0x3
field public static final java.lang.String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT";
field public static final java.lang.String EXTRA_CARRIER_ID = "android.telephony.extra.CARRIER_ID";
field public static final java.lang.String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME";
field public static final java.lang.String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS";
field public static final java.lang.String EXTRA_INCOMING_NUMBER = "incoming_number";
field public static final java.lang.String EXTRA_IS_REFRESH = "android.telephony.extra.IS_REFRESH";
@@ -40846,6 +40851,7 @@ package android.telephony {
field public static final java.lang.String EXTRA_STATE_IDLE;
field public static final java.lang.String EXTRA_STATE_OFFHOOK;
field public static final java.lang.String EXTRA_STATE_RINGING;
field public static final java.lang.String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID";
field public static final java.lang.String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER";
field public static final java.lang.String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU";
field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7
@@ -40881,6 +40887,7 @@ package android.telephony {
field public static final int SIM_STATE_PUK_REQUIRED = 3; // 0x3
field public static final int SIM_STATE_READY = 5; // 0x5
field public static final int SIM_STATE_UNKNOWN = 0; // 0x0
field public static final int UNKNOWN_CARRIER_ID = -1; // 0xffffffff
field public static final int USSD_ERROR_SERVICE_UNAVAIL = -2; // 0xfffffffe
field public static final int USSD_RETURN_FAILURE = -1; // 0xffffffff
field public static final java.lang.String VVM_TYPE_CVVM = "vvm_type_cvvm";

View File

@@ -957,6 +957,64 @@ public class TelephonyManager {
*/
public static final int USSD_ERROR_SERVICE_UNAVAIL = -2;
/**
* An unknown carrier id. It could either be subscription unavailable or the subscription
* carrier cannot be recognized. Unrecognized carriers here means
* {@link #getSimOperator() MCC+MNC} cannot be identified.
*/
public static final int UNKNOWN_CARRIER_ID = -1;
/**
* Broadcast Action: The subscription carrier identity has changed.
* This intent could be sent on the following events:
* <ul>
* <li>Subscription absent. Carrier identity could change from a valid id to
* {@link TelephonyManager#UNKNOWN_CARRIER_ID}.</li>
* <li>Subscription loaded. Carrier identity could change from
* {@link TelephonyManager#UNKNOWN_CARRIER_ID} to a valid id.</li>
* <li>The subscription carrier is recognized after a remote update.</li>
* </ul>
* The intent will have the following extra values:
* <ul>
* <li>{@link #EXTRA_CARRIER_ID} The up-to-date carrier id of the current subscription id.
* </li>
* <li>{@link #EXTRA_CARRIER_NAME} The up-to-date carrier name of the current subscription.
* </li>
* <li>{@link #EXTRA_SUBSCRIPTION_ID} The subscription id associated with the changed carrier
* identity.
* </li>
* </ul>
* <p class="note">This is a protected intent that can only be sent by the system.
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED =
"android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED";
/**
* An int extra used with {@link #ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED} which indicates
* the updated carrier id {@link TelephonyManager#getSubscriptionCarrierId()} of the current
* subscription.
* <p>Will be {@link TelephonyManager#UNKNOWN_CARRIER_ID} if the subscription is unavailable or
* the carrier cannot be identified.
*/
public static final String EXTRA_CARRIER_ID = "android.telephony.extra.CARRIER_ID";
/**
* An string extra used with {@link #ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED} which
* indicates the updated carrier name of the current subscription.
* {@see TelephonyManager#getSubscriptionCarrierName()}
* <p>Carrier name is a user-facing name of the carrier id {@link #EXTRA_CARRIER_ID},
* usually the brand name of the subsidiary (e.g. T-Mobile).
*/
public static final String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME";
/**
* An int extra used with {@link #ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED} to indicate the
* subscription which has changed.
*/
public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID";
//
//
// Device Info
@@ -6547,6 +6605,55 @@ public class TelephonyManager {
}
}
/**
* Returns carrier id of the current subscription.
* <p>To recognize a carrier (including MVNO) as a first class identity, assign each carrier
* with a canonical integer a.k.a carrier id.
*
* @return Carrier id of the current subscription. Return {@link #UNKNOWN_CARRIER_ID} if the
* subscription is unavailable or the carrier cannot be identified.
* @throws IllegalStateException if telephony service is unavailable.
*/
public int getSubscriptionCarrierId() {
try {
ITelephony service = getITelephony();
return service.getSubscriptionCarrierId(getSubId());
} catch (RemoteException ex) {
// This could happen if binder process crashes.
ex.rethrowAsRuntimeException();
} catch (NullPointerException ex) {
// This could happen before phone restarts due to crashing.
throw new IllegalStateException("Telephony service unavailable");
}
return UNKNOWN_CARRIER_ID;
}
/**
* Returns carrier name of the current subscription.
* <p>Carrier name is a user-facing name of carrier id {@link #getSubscriptionCarrierId()},
* usually the brand name of the subsidiary (e.g. T-Mobile). Each carrier could configure
* multiple {@link #getSimOperatorName() SPN} but should have a single carrier name.
* Carrier name is not a canonical identity, use {@link #getSubscriptionCarrierId()} instead.
* <p>The returned carrier name is unlocalized.
*
* @return Carrier name of the current subscription. Return {@code null} if the subscription is
* unavailable or the carrier cannot be identified.
* @throws IllegalStateException if telephony service is unavailable.
*/
public String getSubscriptionCarrierName() {
try {
ITelephony service = getITelephony();
return service.getSubscriptionCarrierName(getSubId());
} catch (RemoteException ex) {
// This could happen if binder process crashes.
ex.rethrowAsRuntimeException();
} catch (NullPointerException ex) {
// This could happen before phone restarts due to crashing.
throw new IllegalStateException("Telephony service unavailable");
}
return null;
}
/**
* Return the application ID for the app type like {@link APPTYPE_CSIM}.
*

View File

@@ -1317,6 +1317,34 @@ interface ITelephony {
*/
List<CarrierIdentifier> getAllowedCarriers(int slotIndex);
/**
* Returns carrier id of the given subscription.
* <p>To recognize carrier as a first class identity, assign each carrier with a canonical
* integer a.k.a carrier id.
*
* @param subId The subscription id
* @return Carrier id of given subscription id. return {@link #UNKNOWN_CARRIER_ID} if
* subscription is unavailable or carrier cannot be identified.
* @throws IllegalStateException if telephony service is unavailable.
* @hide
*/
int getSubscriptionCarrierId(int subId);
/**
* Returns carrier name of the given subscription.
* <p>Carrier name is a user-facing name of carrier id {@link #getSubscriptionCarrierId(int)},
* usually the brand name of the subsidiary (e.g. T-Mobile). Each carrier could configure
* multiple {@link #getSimOperatorName() SPN} but should have a single carrier name.
* Carrier name is not canonical identity, use {@link #getSubscriptionCarrierId(int)} instead.
* <p>Returned carrier name is unlocalized.
*
* @return Carrier name of given subscription id. return {@code null} if subscription is
* unavailable or carrier cannot be identified.
* @throws IllegalStateException if telephony service is unavailable.
* @hide
*/
String getSubscriptionCarrierName(int subId);
/**
* Action set from carrier signalling broadcast receivers to enable/disable metered apns
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required