diff options
| author | 2021-01-21 20:12:54 +0000 | |
|---|---|---|
| committer | 2021-01-21 20:12:54 +0000 | |
| commit | adbd077786bcdd448df24cdf5439a4f13ee6e889 (patch) | |
| tree | 1ee7bde91edcf69234741f7f97150dee3c7bc00e | |
| parent | 46043a617ca66bf02023805c24eb383e525f8bcf (diff) | |
| parent | 66a873b567e10609401bbfc609e066cc6036ea7a (diff) | |
Merge "Revert "Revert "Fix permission on TM#isDataEnabled""" am: 2b79ba7f42 am: 47e1305bd6 am: 66a873b567
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1543459
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I23928895de3898903191b0341947ab6de9a7c75a
| -rw-r--r-- | core/api/current.txt | 2 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 13 |
2 files changed, 11 insertions, 4 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 250e9b76b39f..4f45f310921e 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -41936,7 +41936,7 @@ package android.telephony { method @Deprecated public String iccTransmitApduLogicalChannel(int, int, int, int, int, int, String); method public boolean isConcurrentVoiceAndDataSupported(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE, "android.permission.READ_PRIVILEGED_PHONE_STATE"}) public boolean isDataConnectionAllowed(); - method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean isDataEnabled(); + method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabled(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabledForReason(int); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataRoamingEnabled(); method public boolean isEmergencyNumber(@NonNull String); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 3ea03c40dee0..216413be58a0 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -9811,9 +9811,16 @@ public class TelephonyManager { * @return true if mobile data is enabled. */ @RequiresPermission(anyOf = {android.Manifest.permission.ACCESS_NETWORK_STATE, - android.Manifest.permission.MODIFY_PHONE_STATE}) + android.Manifest.permission.MODIFY_PHONE_STATE, + android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabled() { - return getDataEnabled(getSubId(SubscriptionManager.getDefaultDataSubscriptionId())); + try { + return isDataEnabledForReason(DATA_ENABLED_REASON_USER); + } catch (IllegalStateException ise) { + // TODO(b/176163590): Remove this catch once TelephonyManager is booting safely. + Log.e(TAG, "Error calling #isDataEnabled, returning default (false).", ise); + return false; + } } /** @@ -10058,7 +10065,7 @@ public class TelephonyManager { @SystemApi public boolean getDataEnabled(int subId) { try { - return isDataEnabledForReason(DATA_ENABLED_REASON_USER); + return isDataEnabledForReason(subId, DATA_ENABLED_REASON_USER); } catch (RuntimeException e) { Log.e(TAG, "Error calling isDataEnabledForReason e:" + e); } |