Update permission requirements for TelecomManager#getLine1Number
To move READ_PHONE_STATE from a runtime permission to a normal
permission all sensitive APIs guarded by READ_PHONE_STATE must be
moved to another permission. This commit updates the TelecomManager
getLine1Number docs to reflect the new permission requirements;
these requirements are the same as TelephonyManager getLine1Number.
Bug: 136160623
Test: atest TelecomUnitTests:TelecomServiceImplTest
Change-Id: Ibb8e5d1cf16a05e95c2cc2fb68af35dc4bdb0f02
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index e3baa0a..663c13e 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -1530,12 +1530,22 @@
/**
* Return the line 1 phone number for given phone account.
*
- * Requires permission: {@link android.Manifest.permission#READ_PHONE_STATE}
+ * <p>Requires Permission:
+ * {@link android.Manifest.permission#READ_SMS READ_SMS},
+ * {@link android.Manifest.permission#READ_PHONE_NUMBERS READ_PHONE_NUMBERS},
+ * or that the caller is the default SMS app for any API level.
+ * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
+ * for apps targeting SDK API level 29 and below.
*
* @param accountHandle The handle for the account retrieve a number for.
* @return A string representation of the line 1 phone number.
*/
- @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
+ @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges or default SMS app
+ @RequiresPermission(anyOf = {
+ android.Manifest.permission.READ_PHONE_STATE,
+ android.Manifest.permission.READ_SMS,
+ android.Manifest.permission.READ_PHONE_NUMBERS
+ }, conditional = true)
public String getLine1Number(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {