Expose TelephonyManager#{set,get}DataEnabled.

setDataEnabled requires MODIFY_PHONE_STATE or carrier privileges.
getDataEnabled will work with any of the above or
ACCESS_NETWORK_STATE.

Test: Exercised APIs from test app, updated and executed CTS tests
Change-Id: I2d5a9df2e55f3f7be1729abefe137c00ae1d6c4e
Fixes: 32644451
This commit is contained in:
Jeff Davidson
2016-11-18 15:48:15 -08:00
parent 5cdf49342c
commit 9ce70cfd02
3 changed files with 29 additions and 6 deletions

View File

@@ -37629,6 +37629,7 @@ package android.telephony {
method public int getCallState();
method public android.telephony.CellLocation getCellLocation();
method public int getDataActivity();
method public boolean getDataEnabled();
method public int getDataNetworkType();
method public int getDataState();
method public java.lang.String getDeviceId();
@@ -37675,6 +37676,7 @@ package android.telephony {
method public java.lang.String sendEnvelopeWithStatus(java.lang.String);
method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler);
method public void sendUssdRequest(java.lang.String, int, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler);
method public void setDataEnabled(boolean);
method public boolean setLine1NumberForDisplay(java.lang.String, java.lang.String);
method public boolean setOperatorBrandOverride(java.lang.String);
method public boolean setPreferredNetworkTypeToGlobal();

View File

@@ -37719,6 +37719,7 @@ package android.telephony {
method public int getCallState();
method public android.telephony.CellLocation getCellLocation();
method public int getDataActivity();
method public boolean getDataEnabled();
method public int getDataNetworkType();
method public int getDataState();
method public java.lang.String getDeviceId();
@@ -37765,6 +37766,7 @@ package android.telephony {
method public java.lang.String sendEnvelopeWithStatus(java.lang.String);
method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler);
method public void sendUssdRequest(java.lang.String, int, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler);
method public void setDataEnabled(boolean);
method public boolean setLine1NumberForDisplay(java.lang.String, java.lang.String);
method public boolean setOperatorBrandOverride(java.lang.String);
method public boolean setPreferredNetworkTypeToGlobal();

View File

@@ -4850,10 +4850,19 @@ public class TelephonyManager {
return false;
}
/** @hide */
@SystemApi
/**
* Turns mobile data on or off.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the
* calling app has carrier privileges.
*
* @param enable Whether to enable mobile data.
*
* @see #hasCarrierPrivileges
*/
public void setDataEnabled(boolean enable) {
setDataEnabled(SubscriptionManager.getDefaultDataSubscriptionId(), enable);
setDataEnabled(getSubId(), enable);
}
/** @hide */
@@ -4869,10 +4878,20 @@ public class TelephonyManager {
}
}
/** @hide */
@SystemApi
/**
* Returns whether mobile data is enabled or not.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#ACCESS_NETWORK_STATE ACCESS_NETWORK_STATE},
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}, or that the
* calling app has carrier privileges.
*
* @return true if mobile data is enabled.
*
* @see #hasCarrierPrivileges
*/
public boolean getDataEnabled() {
return getDataEnabled(SubscriptionManager.getDefaultDataSubscriptionId());
return getDataEnabled(getSubId());
}
/** @hide */