summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alireza Forouzan <alirezaf@google.com> 2021-03-16 22:10:55 -0700
committer Alireza Forouzan <alirezaf@google.com> 2021-03-21 17:49:33 +0000
commit32d484c8e0745e3f5141410d67d68270dc76355d (patch)
tree1c0f88612bf2521db64a9bdeca064753a4e1c7ca
parent80e8713490d1567d4e0de354414698744f5a5933 (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.txt1
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java19
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.