Merge "Add createForPhoneAccountHandle() and getServicetate() Respect TelephonyManager's subId when listening to phone state"
am: 0a3b6b70dd
Change-Id: I512e68bccda115ad7c58ec1f1fbfbb2c69c86578
This commit is contained in:
@@ -37369,6 +37369,7 @@ package android.telephony {
|
|||||||
|
|
||||||
public class TelephonyManager {
|
public class TelephonyManager {
|
||||||
method public boolean canChangeDtmfToneLength();
|
method public boolean canChangeDtmfToneLength();
|
||||||
|
method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
|
||||||
method public android.telephony.TelephonyManager createForSubscriptionId(int);
|
method public android.telephony.TelephonyManager createForSubscriptionId(int);
|
||||||
method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
|
method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
|
||||||
method public int getCallState();
|
method public int getCallState();
|
||||||
@@ -37391,6 +37392,7 @@ package android.telephony {
|
|||||||
method public int getNetworkType();
|
method public int getNetworkType();
|
||||||
method public int getPhoneCount();
|
method public int getPhoneCount();
|
||||||
method public int getPhoneType();
|
method public int getPhoneType();
|
||||||
|
method public android.telephony.ServiceState getServiceState();
|
||||||
method public java.lang.String getSimCountryIso();
|
method public java.lang.String getSimCountryIso();
|
||||||
method public java.lang.String getSimOperator();
|
method public java.lang.String getSimOperator();
|
||||||
method public java.lang.String getSimOperatorName();
|
method public java.lang.String getSimOperatorName();
|
||||||
|
|||||||
@@ -40482,6 +40482,7 @@ package android.telephony {
|
|||||||
method public boolean canChangeDtmfToneLength();
|
method public boolean canChangeDtmfToneLength();
|
||||||
method public int checkCarrierPrivilegesForPackage(java.lang.String);
|
method public int checkCarrierPrivilegesForPackage(java.lang.String);
|
||||||
method public int checkCarrierPrivilegesForPackageAnyPhone(java.lang.String);
|
method public int checkCarrierPrivilegesForPackageAnyPhone(java.lang.String);
|
||||||
|
method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
|
||||||
method public android.telephony.TelephonyManager createForSubscriptionId(int);
|
method public android.telephony.TelephonyManager createForSubscriptionId(int);
|
||||||
method public void dial(java.lang.String);
|
method public void dial(java.lang.String);
|
||||||
method public boolean disableDataConnectivity();
|
method public boolean disableDataConnectivity();
|
||||||
@@ -40519,6 +40520,7 @@ package android.telephony {
|
|||||||
method public int getNetworkType();
|
method public int getNetworkType();
|
||||||
method public int getPhoneCount();
|
method public int getPhoneCount();
|
||||||
method public int getPhoneType();
|
method public int getPhoneType();
|
||||||
|
method public android.telephony.ServiceState getServiceState();
|
||||||
method public java.lang.String getSimCountryIso();
|
method public java.lang.String getSimCountryIso();
|
||||||
method public java.lang.String getSimOperator();
|
method public java.lang.String getSimOperator();
|
||||||
method public java.lang.String getSimOperatorName();
|
method public java.lang.String getSimOperatorName();
|
||||||
|
|||||||
@@ -37451,6 +37451,7 @@ package android.telephony {
|
|||||||
|
|
||||||
public class TelephonyManager {
|
public class TelephonyManager {
|
||||||
method public boolean canChangeDtmfToneLength();
|
method public boolean canChangeDtmfToneLength();
|
||||||
|
method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
|
||||||
method public android.telephony.TelephonyManager createForSubscriptionId(int);
|
method public android.telephony.TelephonyManager createForSubscriptionId(int);
|
||||||
method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
|
method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
|
||||||
method public int getCallState();
|
method public int getCallState();
|
||||||
@@ -37473,6 +37474,7 @@ package android.telephony {
|
|||||||
method public int getNetworkType();
|
method public int getNetworkType();
|
||||||
method public int getPhoneCount();
|
method public int getPhoneCount();
|
||||||
method public int getPhoneType();
|
method public int getPhoneType();
|
||||||
|
method public android.telephony.ServiceState getServiceState();
|
||||||
method public java.lang.String getSimCountryIso();
|
method public java.lang.String getSimCountryIso();
|
||||||
method public java.lang.String getSimOperator();
|
method public java.lang.String getSimOperator();
|
||||||
method public java.lang.String getSimOperatorName();
|
method public java.lang.String getSimOperatorName();
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ public class PhoneStateListener {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
/** @hide */
|
/** @hide */
|
||||||
protected int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
protected Integer mSubId;
|
||||||
|
|
||||||
private final Handler mHandler;
|
private final Handler mHandler;
|
||||||
|
|
||||||
@@ -242,7 +242,7 @@ public class PhoneStateListener {
|
|||||||
* This class requires Looper.myLooper() not return null.
|
* This class requires Looper.myLooper() not return null.
|
||||||
*/
|
*/
|
||||||
public PhoneStateListener() {
|
public PhoneStateListener() {
|
||||||
this(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, Looper.myLooper());
|
this(null, Looper.myLooper());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -251,7 +251,7 @@ public class PhoneStateListener {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public PhoneStateListener(Looper looper) {
|
public PhoneStateListener(Looper looper) {
|
||||||
this(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, looper);
|
this(null, looper);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -260,7 +260,7 @@ public class PhoneStateListener {
|
|||||||
* own non-null Looper use PhoneStateListener(int subId, Looper looper) below.
|
* own non-null Looper use PhoneStateListener(int subId, Looper looper) below.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public PhoneStateListener(int subId) {
|
public PhoneStateListener(Integer subId) {
|
||||||
this(subId, Looper.myLooper());
|
this(subId, Looper.myLooper());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ public class PhoneStateListener {
|
|||||||
* and non-null Looper.
|
* and non-null Looper.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public PhoneStateListener(int subId, Looper looper) {
|
public PhoneStateListener(Integer subId, Looper looper) {
|
||||||
if (DBG) log("ctor: subId=" + subId + " looper=" + looper);
|
if (DBG) log("ctor: subId=" + subId + " looper=" + looper);
|
||||||
mSubId = subId;
|
mSubId = subId;
|
||||||
mHandler = new Handler(looper) {
|
mHandler = new Handler(looper) {
|
||||||
|
|||||||
@@ -258,6 +258,22 @@ public class TelephonyManager {
|
|||||||
return new TelephonyManager(mContext, subId);
|
return new TelephonyManager(mContext, subId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new TelephonyManager object pinned to the subscription ID associated with the given
|
||||||
|
* phone account.
|
||||||
|
*
|
||||||
|
* @return a TelephonyManager that uses the given phone account for all calls, or {@code null}
|
||||||
|
* if the phone account does not correspond to a valid subscription ID.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
public TelephonyManager createForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
|
||||||
|
int subId = getSubIdForPhoneAccountHandle(phoneAccountHandle);
|
||||||
|
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new TelephonyManager(mContext, subId);
|
||||||
|
}
|
||||||
|
|
||||||
/** {@hide} */
|
/** {@hide} */
|
||||||
public boolean isMultiSimEnabled() {
|
public boolean isMultiSimEnabled() {
|
||||||
return (multiSimConfig.equals("dsds") || multiSimConfig.equals("dsda") ||
|
return (multiSimConfig.equals("dsds") || multiSimConfig.equals("dsda") ||
|
||||||
@@ -2991,6 +3007,12 @@ public class TelephonyManager {
|
|||||||
if (mContext == null) return;
|
if (mContext == null) return;
|
||||||
try {
|
try {
|
||||||
Boolean notifyNow = (getITelephony() != null);
|
Boolean notifyNow = (getITelephony() != null);
|
||||||
|
// If the listener has not explicitly set the subId (for example, created with the
|
||||||
|
// default constructor), replace the subId so it will listen to the account the
|
||||||
|
// telephony manager is created with.
|
||||||
|
if (listener.mSubId == null) {
|
||||||
|
listener.mSubId = mSubId;
|
||||||
|
}
|
||||||
sRegistry.listenForSubscriber(listener.mSubId, getOpPackageName(),
|
sRegistry.listenForSubscriber(listener.mSubId, getOpPackageName(),
|
||||||
listener.callback, events, notifyNow);
|
listener.callback, events, notifyNow);
|
||||||
} catch (RemoteException ex) {
|
} catch (RemoteException ex) {
|
||||||
@@ -5354,6 +5376,19 @@ public class TelephonyManager {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getSubIdForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
|
||||||
|
int retval = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
try {
|
||||||
|
ITelecomService service = getTelecomService();
|
||||||
|
if (service != null) {
|
||||||
|
retval = getSubIdForPhoneAccount(service.getPhoneAccount(phoneAccountHandle));
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resets telephony manager settings back to factory defaults.
|
* Resets telephony manager settings back to factory defaults.
|
||||||
*
|
*
|
||||||
@@ -5402,6 +5437,16 @@ public class TelephonyManager {
|
|||||||
result.send(0, null);
|
result.send(0, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current {@link ServiceState} information.
|
||||||
|
*
|
||||||
|
* <p>Requires Permission:
|
||||||
|
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
|
||||||
|
*/
|
||||||
|
public ServiceState getServiceState() {
|
||||||
|
return getServiceStateForSubscriber(getSubId());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the service state information on specified subscription. Callers require
|
* Returns the service state information on specified subscription. Callers require
|
||||||
* either READ_PRIVILEGED_PHONE_STATE or READ_PHONE_STATE to retrieve the information.
|
* either READ_PRIVILEGED_PHONE_STATE or READ_PHONE_STATE to retrieve the information.
|
||||||
|
|||||||
Reference in New Issue
Block a user