Merge "Revert "Support api to control data by thermal service""

This commit is contained in:
Greg Kaiser
2020-05-05 19:57:48 +00:00
committed by Android (Google) Code Review
5 changed files with 59 additions and 175 deletions

View File

@@ -48316,7 +48316,7 @@ package android.telephony {
method @Deprecated public String sendEnvelopeWithStatus(String);
method @RequiresPermission(android.Manifest.permission.CALL_PHONE) public void sendUssdRequest(String, android.telephony.TelephonyManager.UssdResponseCallback, android.os.Handler);
method public void sendVisualVoicemailSms(String, int, String, android.app.PendingIntent);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setForbiddenPlmns(@NonNull java.util.List<java.lang.String>);
method public boolean setLine1NumberForDisplay(String, String);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setNetworkSelectionModeAutomatic();

View File

@@ -11202,7 +11202,6 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataConnectionAllowed();
method public boolean isDataConnectivityPossible();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabledWithReason(int);
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean isIccLockEnabled();
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
@@ -11230,11 +11229,10 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings();
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAllowedNetworkTypes(long);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(int, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabledWithReason(int, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean);
@@ -11272,10 +11270,6 @@ package android.telephony {
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
field public static final int DATA_ENABLED_REASON_CARRIER = 2; // 0x2
field public static final int DATA_ENABLED_REASON_POLICY = 1; // 0x1
field public static final int DATA_ENABLED_REASON_THERMAL = 3; // 0x3
field public static final int DATA_ENABLED_REASON_USER = 0; // 0x0
field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE";

View File

@@ -689,7 +689,6 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataConnectionAllowed();
method public boolean isDataConnectivityPossible();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabledWithReason(int);
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean isIccLockEnabled();
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
@@ -717,11 +716,10 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings();
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAllowedNetworkTypes(long);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(int, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabledWithReason(int, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean);
@@ -759,10 +757,6 @@ package android.telephony {
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
field public static final int DATA_ENABLED_REASON_CARRIER = 2; // 0x2
field public static final int DATA_ENABLED_REASON_POLICY = 1; // 0x1
field public static final int DATA_ENABLED_REASON_THERMAL = 3; // 0x3
field public static final int DATA_ENABLED_REASON_USER = 0; // 0x0
field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE";

View File

@@ -9095,10 +9095,8 @@ public class TelephonyManager {
* app has carrier privileges (see {@link #hasCarrierPrivileges}).
*
* @param enable Whether to enable mobile data.
* @deprecated use setDataEnabledWithReason with reason DATA_ENABLED_REASON_USER instead.
*
*/
@Deprecated
@SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setDataEnabled(boolean enable) {
@@ -9107,13 +9105,20 @@ public class TelephonyManager {
/**
* @hide
* @deprecated use {@link #setDataEnabledWithReason(int, boolean)} instead.
* @deprecated use {@link #setDataEnabled(boolean)} instead.
*/
@SystemApi
@Deprecated
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setDataEnabled(int subId, boolean enable) {
setDataEnabledWithReason(subId, DATA_ENABLED_REASON_USER, enable);
try {
Log.d(TAG, "setDataEnabled: enabled=" + enable);
ITelephony telephony = getITelephony();
if (telephony != null)
telephony.setUserDataEnabled(subId, enable);
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#setUserDataEnabled", e);
}
}
/**
@@ -9320,7 +9325,15 @@ public class TelephonyManager {
@Deprecated
@SystemApi
public boolean getDataEnabled(int subId) {
return isDataEnabledWithReason(DATA_ENABLED_REASON_USER);
boolean retVal = false;
try {
ITelephony telephony = getITelephony();
if (telephony != null)
retVal = telephony.isUserDataEnabled(subId);
} catch (RemoteException | NullPointerException e) {
Log.e(TAG, "Error calling ITelephony#isUserDataEnabled", e);
}
return retVal;
}
/**
@@ -10871,15 +10884,20 @@ public class TelephonyManager {
*
* @param enabled control enable or disable carrier data.
* @see #resetAllCarrierActions()
* @deprecated use {@link #setDataEnabledWithReason(int, boolean) with
* reason {@link #DATA_ENABLED_REASON_CARRIER}} instead.
* @hide
*/
@Deprecated
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setCarrierDataEnabled(boolean enabled) {
setDataEnabledWithReason(DATA_ENABLED_REASON_CARRIER, enabled);
try {
ITelephony service = getITelephony();
if (service != null) {
service.carrierActionSetMeteredApnsEnabled(
getSubId(SubscriptionManager.getDefaultDataSubscriptionId()), enabled);
}
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#setCarrierDataEnabled", e);
}
}
/**
@@ -10964,149 +10982,20 @@ public class TelephonyManager {
/**
* Policy control of data connection. Usually used when data limit is passed.
* @param enabled True if enabling the data, otherwise disabling.
* @deprecated use {@link #setDataEnabledWithReason(int, boolean) with
* reason {@link #DATA_ENABLED_REASON_POLICY}} instead.
* @hide
*/
@Deprecated
@RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
public void setPolicyDataEnabled(boolean enabled) {
setDataEnabledWithReason(DATA_ENABLED_REASON_POLICY, enabled);
}
/** @hide */
@IntDef({
DATA_ENABLED_REASON_USER,
DATA_ENABLED_REASON_POLICY,
DATA_ENABLED_REASON_CARRIER,
DATA_ENABLED_REASON_THERMAL
})
@Retention(RetentionPolicy.SOURCE)
public @interface DataEnabledReason{}
/**
* To indicate that user enabled or disabled data.
* @hide
*/
@SystemApi
public static final int DATA_ENABLED_REASON_USER = 0;
/**
* To indicate that data control due to policy. Usually used when data limit is passed.
* Policy data on/off won't affect user settings but will bypass the
* settings and turns off data internally if set to {@code false}.
* @hide
*/
@SystemApi
public static final int DATA_ENABLED_REASON_POLICY = 1;
/**
* To indicate enable or disable carrier data by the system based on carrier signalling or
* carrier privileged apps. Carrier data on/off won't affect user settings but will bypass the
* settings and turns off data internally if set to {@code false}.
* @hide
*/
@SystemApi
public static final int DATA_ENABLED_REASON_CARRIER = 2;
/**
* To indicate enable or disable data by thermal service.
* Thermal data on/off won't affect user settings but will bypass the
* settings and turns off data internally if set to {@code false}.
* @hide
*/
@SystemApi
public static final int DATA_ENABLED_REASON_THERMAL = 3;
/**
* Control of data connection and provide the reason triggering the data connection control.
* This can be called for following reasons
* <ol>
* <li>data limit is passed {@link #DATA_ENABLED_REASON_POLICY}
* <li>data disabled by carrier {@link #DATA_ENABLED_REASON_CARRIER}
* <li>data disabled by user {@link #DATA_ENABLED_REASON_USER}
* <li>data disabled due to thermal {@link #DATA_ENABLED_REASON_THERMAL}
* </ol>
* If any of the reason is off, then it will result in
* bypassing user preference and result in data to be turned off.
*
* <p>If this object has been created with {@link #createForSubscriptionId}, applies
* to the given subId. Otherwise, applies to
* {@link SubscriptionManager#getDefaultDataSubscriptionId()}
*
*
* @param reason the reason the data enable change is taking place
* @param enabled True if enabling the data, otherwise disabling.
*
* <p>Requires Permission:
* The calling app has carrier privileges (see {@link #hasCarrierPrivileges}) if the reason is
* {@link #DATA_ENABLED_REASON_USER} or {@link #DATA_ENABLED_REASON_CARRIER} or the call app
* has {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} irrespective of
* the reason.
* @throws IllegalStateException if the Telephony process is not currently available.
* @hide
*/
@RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
@SystemApi
public void setDataEnabledWithReason(@DataEnabledReason int reason, boolean enabled) {
setDataEnabledWithReason(getSubId(), reason, enabled);
}
private void setDataEnabledWithReason(int subId, @DataEnabledReason int reason,
boolean enabled) {
try {
ITelephony service = getITelephony();
if (service != null) {
service.setDataEnabledWithReason(subId, reason, enabled);
} else {
throw new IllegalStateException("telephony service is null.");
service.setPolicyDataEnabled(enabled, getSubId());
}
} catch (RemoteException ex) {
Log.e(TAG, "Telephony#setDataEnabledWithReason RemoteException", ex);
ex.rethrowFromSystemServer();
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#setPolicyDataEnabled", e);
}
}
/**
* Return whether data is enabled for certain reason .
*
* If {@link #isDataEnabledWithReason} returns false, it means in data enablement for a
* specific reason is turned off. If any of the reason is off, then it will result in
* bypassing user preference and result in data to be turned off.
*
* <p>If this object has been created with {@link #createForSubscriptionId}, applies
* to the given subId. Otherwise, applies to
* {@link SubscriptionManager#getDefaultDataSubscriptionId()}
*
* @param reason the reason the data enable change is taking place
* @return whether data is enabled for a reason.
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
* @throws IllegalStateException if the Telephony process is not currently available.
* @hide
*/
@RequiresPermission(anyOf = {android.Manifest.permission.ACCESS_NETWORK_STATE,
android.Manifest.permission.READ_PHONE_STATE})
@SystemApi
public boolean isDataEnabledWithReason(@DataEnabledReason int reason) {
return isDataEnabledWithReason(getSubId(), reason);
}
private boolean isDataEnabledWithReason(int subId, @DataEnabledReason int reason) {
try {
ITelephony service = getITelephony();
if (service != null) {
return service.isDataEnabledWithReason(subId, reason);
} else {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
Log.e(TAG, "Telephony#isDataEnabledWithReason RemoteException", ex);
ex.rethrowFromSystemServer();
}
return false;
}
/**
* Get Client request stats which will contain statistical information
* on each request made by client.

View File

@@ -957,6 +957,13 @@ interface ITelephony {
*/
boolean setPreferredNetworkType(int subId, int networkType);
/**
* User enable/disable Mobile Data.
*
* @param enable true to turn on, else false
*/
void setUserDataEnabled(int subId, boolean enable);
/**
* Get the user enabled state of Mobile Data.
*
@@ -978,29 +985,12 @@ interface ITelephony {
boolean isUserDataEnabled(int subId);
/**
* Check if data is enabled on the device. It can be disabled by
* user, carrier, policy or thermal.
* Get the overall enabled state of Mobile Data.
*
* @return true on enabled
*/
boolean isDataEnabled(int subId);
/**
* Control of data connection and provide the reason triggering the data connection control.
*
* @param subId user preferred subId.
* @param reason the reason the data enable change is taking place
* @param enable true to turn on, else false
*/
void setDataEnabledWithReason(int subId, int reason, boolean enable);
/**
* Return whether data is enabled for certain reason
* @param subId user preferred subId. .
* @param reason the reason the data enable change is taking place
* @return true on enabled
*/
boolean isDataEnabledWithReason(int subId, int reason);
/**
* Checks if manual network selection is allowed.
*
@@ -1597,6 +1587,15 @@ interface ITelephony {
*/
int getCarrierIdFromMccMnc(int slotIndex, String mccmnc, boolean isSubscriptionMccMnc);
/**
* Action set from carrier signalling broadcast receivers to enable/disable metered apns
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
* @param subId the subscription ID that this action applies to.
* @param enabled control enable or disable metered apns.
* @hide
*/
void carrierActionSetMeteredApnsEnabled(int subId, boolean visible);
/**
* Action set from carrier signalling broadcast receivers to enable/disable radio
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
@@ -1697,6 +1696,14 @@ interface ITelephony {
*/
boolean setCallWaitingStatus(int subId, boolean isEnable);
/**
* Policy control of data connection. Usually used when data limit is passed.
* @param enabled True if enabling the data, otherwise disabling.
* @param subId Subscription index
* @hide
*/
void setPolicyDataEnabled(boolean enabled, int subId);
/**
* Get Client request stats which will contain statistical information
* on each request made by client.