summaryrefslogtreecommitdiffstats
path: root/telecomm
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2015-04-23 12:32:36 -0700
committerYorke Lee <yorkelee@google.com>2015-04-23 16:48:52 -0700
commit3e56ba14cc1533ec2585994066b238f0e2c7f59a (patch)
tree99c2fab55ee560881fcf828321fbe5e678d41318 /telecomm
parent8d505ff025f16715d47f97d0f74a0cbba6c6391d (diff)
downloadframeworks_base-3e56ba14cc1533ec2585994066b238f0e2c7f59a.zip
frameworks_base-3e56ba14cc1533ec2585994066b238f0e2c7f59a.tar.gz
frameworks_base-3e56ba14cc1533ec2585994066b238f0e2c7f59a.tar.bz2
Add TelecomManager.placeCall
Places a new outgoing call using the system telecom service with the specified parameters. Making emergency calls using this method requires that the method-caller is either the user-selected default dialer app or preloaded system dialer app. Requires that the caller have the {@link android.Manifest.permission#CALL_PHONE} permission. Bug: 20348183 Change-Id: Ieedb5628e8c6be25137944e7c3639dc1d9bc61df
Diffstat (limited to 'telecomm')
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java34
-rw-r--r--telecomm/java/com/android/internal/telecom/ITelecomService.aidl5
2 files changed, 39 insertions, 0 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index a72172c..fd95327 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -17,6 +17,7 @@ package android.telecom;
import android.annotation.SystemApi;
import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
@@ -1057,6 +1058,39 @@ public class TelecomManager {
}
}
+ /**
+ * Places a new outgoing call to the provided address using the system telecom service with
+ * the specified extras.
+ *
+ * This method is equivalent to placing an outgoing call using {@link Intent#ACTION_CALL},
+ * except that the outgoing call will always be sent via the system telecom service. If
+ * method-caller is either the user selected default dialer app or preloaded system dialer
+ * app, then emergency calls will also be allowed.
+ *
+ * Requires permission: {@link android.Manifest.permission#CALL_PHONE}
+ *
+ * Usage example:
+ * <pre>
+ * Uri uri = Uri.fromParts("tel", "12345", null);
+ * Bundle extras = new Bundle();
+ * extras.putBoolean(TelecomManager.EXTRA_START_CALL_WITH_SPEAKERPHONE, true);
+ * telecomManager.placeCall(uri, extras);
+ * </pre>
+ *
+ * @param address The address to make the call to.
+ * @param extras Bundle of extras to use with the call.
+ */
+ public void placeCall(Uri address, Bundle extras) {
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.placeCall(address, extras, mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#placeCall", e);
+ }
+ }
+ }
+
private ITelecomService getTelecomService() {
return ITelecomService.Stub.asInterface(ServiceManager.getService(Context.TELECOM_SERVICE));
}
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 727fd4b..45b2482 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -210,4 +210,9 @@ interface ITelecomService {
* @see TelecomServiceImpl#addNewUnknownCall
*/
void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras);
+
+ /**
+ * @see TelecomServiceImpl#placeCall
+ */
+ void placeCall(in Uri handle, in Bundle extras, String callingPackage);
}