summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/TelecomManager.java
diff options
context:
space:
mode:
authorShuo Qian <shuoq@google.com>2020-11-12 23:21:44 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-11-12 23:21:44 +0000
commit7779d92cee316c27febbcd66800d72734b2c25d6 (patch)
treef71132c25375a4bcfcfe80ac46d3afb0ab1b889a /telecomm/java/android/telecom/TelecomManager.java
parent37dd98eff806e7e8b7ecd7dd4c8814de279822ce (diff)
parent94d349257bf810930a9d5ceab8e0af7559b55260 (diff)
Merge "Introduce hasCompanionInCallServiceAccess API" am: 83cc1b62f0 am: 8a37624fe2 am: 94d349257b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1495021 Change-Id: I172115cb9ec07a1020f9c635fff9ae2c3bf7cdc1
Diffstat (limited to 'telecomm/java/android/telecom/TelecomManager.java')
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 8e4b8528f6b7..a0afe48938cb 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -32,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;
@@ -1597,6 +1598,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.
@@ -2392,6 +2417,10 @@ public class TelecomManager {
}
}
+ private boolean isSystemProcess() {
+ return Process.myUid() == Process.SYSTEM_UID;
+ }
+
private ITelecomService getTelecomService() {
if (mTelecomServiceOverride != null) {
return mTelecomServiceOverride;