diff options
Diffstat (limited to 'telecomm/java/android/telecom/TelecomManager.java')
-rw-r--r-- | telecomm/java/android/telecom/TelecomManager.java | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index f590b074d274..53c1b264bd02 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -25,7 +25,6 @@ import android.annotation.SuppressAutoDoc; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; -import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; @@ -33,6 +32,7 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; @@ -711,7 +711,6 @@ public class TelecomManager { * * @hide */ - @TestApi @SystemApi public static final int TTY_MODE_OFF = 0; @@ -721,7 +720,6 @@ public class TelecomManager { * * @hide */ - @TestApi @SystemApi public static final int TTY_MODE_FULL = 1; @@ -732,7 +730,6 @@ public class TelecomManager { * * @hide */ - @TestApi @SystemApi public static final int TTY_MODE_HCO = 2; @@ -743,7 +740,6 @@ public class TelecomManager { * * @hide */ - @TestApi @SystemApi public static final int TTY_MODE_VCO = 3; @@ -754,7 +750,6 @@ public class TelecomManager { * TTY mode. * @hide */ - @TestApi @SystemApi public static final String ACTION_CURRENT_TTY_MODE_CHANGED = "android.telecom.action.CURRENT_TTY_MODE_CHANGED"; @@ -777,7 +772,6 @@ public class TelecomManager { * plugged into the device. * @hide */ - @TestApi @SystemApi public static final String EXTRA_CURRENT_TTY_MODE = "android.telecom.extra.CURRENT_TTY_MODE"; @@ -789,7 +783,6 @@ public class TelecomManager { * preferred TTY mode. * @hide */ - @TestApi @SystemApi public static final String ACTION_TTY_PREFERRED_MODE_CHANGED = "android.telecom.action.TTY_PREFERRED_MODE_CHANGED"; @@ -808,7 +801,6 @@ public class TelecomManager { * </ul> * @hide */ - @TestApi @SystemApi public static final String EXTRA_TTY_PREFERRED_MODE = "android.telecom.extra.TTY_PREFERRED_MODE"; @@ -1063,7 +1055,6 @@ public class TelecomManager { * @hide */ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) - @TestApi @SystemApi public void setUserSelectedOutgoingPhoneAccount(@Nullable PhoneAccountHandle accountHandle) { try { @@ -1237,7 +1228,6 @@ public class TelecomManager { * @hide */ @SystemApi - @TestApi @RequiresPermission(READ_PRIVILEGED_PHONE_STATE) public @NonNull List<PhoneAccountHandle> getCallCapablePhoneAccounts( boolean includeDisabledAccounts) { @@ -1471,7 +1461,6 @@ public class TelecomManager { * @hide */ @SystemApi - @TestApi @RequiresPermission(READ_PRIVILEGED_PHONE_STATE) public @Nullable String getDefaultDialerPackage(@NonNull UserHandle userHandle) { try { @@ -1635,6 +1624,30 @@ public class TelecomManager { } /** + * Returns whether the caller has {@link InCallService} access for companion apps. + * + * A companion app is an app associated with a physical wearable device via the + * {@link android.companion.CompanionDeviceManager} API. + * + * @return {@code true} if the caller has {@link InCallService} access for + * companion app; {@code false} otherwise. + */ + public boolean hasCompanionInCallServiceAccess() { + try { + if (isServiceConnected()) { + return getTelecomService().hasCompanionInCallServiceAccess( + mContext.getOpPackageName()); + } + } catch (RemoteException e) { + Log.e(TAG, "RemoteException calling hasCompanionInCallServiceAccess().", e); + if (!isSystemProcess()) { + e.rethrowAsRuntimeException(); + } + } + return false; + } + + /** * Returns whether there is an ongoing call originating from a managed * {@link ConnectionService}. An ongoing call can be in dialing, ringing, active or holding * states. @@ -1695,7 +1708,6 @@ public class TelecomManager { * @hide */ @SystemApi - @TestApi @RequiresPermission(anyOf = { READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE @@ -1853,7 +1865,6 @@ public class TelecomManager { * @hide */ @SystemApi - @TestApi @RequiresPermission(READ_PRIVILEGED_PHONE_STATE) public @TtyMode int getCurrentTtyMode() { try { @@ -2267,7 +2278,6 @@ public class TelecomManager { * @hide */ @SystemApi - @TestApi @NonNull public Intent createLaunchEmergencyDialerIntent(@Nullable String number) { ITelecomService service = getTelecomService(); @@ -2420,7 +2430,6 @@ public class TelecomManager { * @hide */ @SystemApi - @TestApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall() { try { @@ -2450,6 +2459,10 @@ public class TelecomManager { } } + private boolean isSystemProcess() { + return Process.myUid() == Process.SYSTEM_UID; + } + private ITelecomService getTelecomService() { if (mTelecomServiceOverride != null) { return mTelecomServiceOverride; |