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
This commit is contained in:
Alireza Forouzan
2021-03-16 22:10:55 -07:00
parent 80e8713490
commit 32d484c8e0
2 changed files with 20 additions and 0 deletions

View File

@@ -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();

View File

@@ -11036,6 +11036,25 @@ public class TelephonyManager {
return retval;
}
/**
* 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.
*