diff options
| author | 2021-03-16 22:10:55 -0700 | |
|---|---|---|
| committer | 2021-03-21 17:49:33 +0000 | |
| commit | 32d484c8e0745e3f5141410d67d68270dc76355d (patch) | |
| tree | 1c0f88612bf2521db64a9bdeca064753a4e1c7ca | |
| parent | 80e8713490d1567d4e0de354414698744f5a5933 (diff) | |
Add an API to getPhoneAccountHandle for a TelephonyManager
This change allows the carrier privilege app to get the PhoneAccountHandle associated with its TelephonyManager without requiring the READ_PRIVILEGED_PHONE_STATE permission.
Bug: 182966851
Test: manual,CTS
Change-Id: I83392c58d241ff02d099170294278b1273f11571
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 7acad18752ed..aac98980694c 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -42283,6 +42283,7 @@ package android.telephony { method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getNetworkSlicingConfiguration(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.data.SlicingConfig,android.telephony.TelephonyManager.SlicingException>); method public String getNetworkSpecifier(); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getNetworkType(); + method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public android.telecom.PhoneAccountHandle getPhoneAccountHandle(); method @Deprecated public int getPhoneCount(); method public int getPhoneType(); method @RequiresPermission(anyOf={"android.permission.READ_PRIVILEGED_PHONE_STATE", android.Manifest.permission.READ_PHONE_STATE}) public int getPreferredOpportunisticDataSubscription(); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index f06b538bf3b1..02d04eaa62d3 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -11037,6 +11037,25 @@ public class TelephonyManager { } /** + * Determines the {@link PhoneAccountHandle} associated with this TelephonyManager. + * + * <p>If this object has been created with {@link #createForSubscriptionId}, applies to the + * given subId. Otherwise, applies to {@link SubscriptionManager#getDefaultSubscriptionId()} + * + * <p>Requires Permission android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE or that the + * calling app has carrier privileges (see {@link #hasCarrierPrivileges}) + * + * @return The {@link PhoneAccountHandle} associated with the TelphonyManager, or {@code null} + * if there is no associated {@link PhoneAccountHandle}; this can happen if the subscription is + * data-only or an opportunistic subscription. + */ + @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges + @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + public @Nullable PhoneAccountHandle getPhoneAccountHandle() { + return getPhoneAccountHandleForSubscriptionId(getSubId()); + } + + /** * Determines the {@link PhoneAccountHandle} associated with a subscription Id. * * @param subscriptionId The subscription Id to check. |