summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.txt4
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java7
-rw-r--r--telephony/java/android/telephony/ThirdPartyCallProvider.java16
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl5
-rw-r--r--telephony/java/com/android/internal/telephony/IThirdPartyCallProvider.aidl5
5 files changed, 33 insertions, 4 deletions
diff --git a/api/current.txt b/api/current.txt
index f454a8f..d5b976b 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -24518,7 +24518,7 @@ package android.telephony {
method public java.lang.String iccTransmitApduLogicalChannel(int, int, int, int, int, int, java.lang.String);
method public boolean isNetworkRoaming();
method public void listen(android.telephony.PhoneStateListener, int);
- method public void newIncomingThirdPartyCall(android.content.ComponentName, java.lang.String);
+ method public void newIncomingThirdPartyCall(android.content.ComponentName, java.lang.String, java.lang.String);
field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE";
field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE";
field public static final int CALL_STATE_IDLE = 0; // 0x0
@@ -24582,6 +24582,7 @@ package android.telephony {
method public void hangup();
method public void incomingCallAccept();
method public void mute(boolean);
+ method public void sendDtmf(char);
}
public class ThirdPartyCallService {
@@ -34080,6 +34081,7 @@ package com.android.internal.telephony {
method public abstract void hangup() throws android.os.RemoteException;
method public abstract void incomingCallAccept() throws android.os.RemoteException;
method public abstract void mute(boolean) throws android.os.RemoteException;
+ method public abstract void sendDtmf(char) throws android.os.RemoteException;
}
}
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 2723118..0e54d0f 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -1428,10 +1428,13 @@ public class TelephonyManager {
* @param component the component that should handle the intent.
* @param callId the unique id of the call. This id is passed to the service via {@link
* ThirdPartyCallService#incomingCallAttach incomingCallAttach}.
+ * @param callerDisplayName the name shown to the user. Normally this will be the caller's phone
+ * number.
*/
- public void newIncomingThirdPartyCall(ComponentName component, String callId) {
+ public void newIncomingThirdPartyCall(ComponentName component, String callId,
+ String callerDisplayName) {
try {
- getITelephony().newIncomingThirdPartyCall(component, callId);
+ getITelephony().newIncomingThirdPartyCall(component, callId, callerDisplayName);
} catch (RemoteException ex) {
} catch (NullPointerException ex) {
}
diff --git a/telephony/java/android/telephony/ThirdPartyCallProvider.java b/telephony/java/android/telephony/ThirdPartyCallProvider.java
index 9d3f929..74b9ae3 100644
--- a/telephony/java/android/telephony/ThirdPartyCallProvider.java
+++ b/telephony/java/android/telephony/ThirdPartyCallProvider.java
@@ -29,6 +29,7 @@ public class ThirdPartyCallProvider {
private static final int MSG_MUTE = 1;
private static final int MSG_HANGUP = 2;
private static final int MSG_INCOMING_CALL_ACCEPT = 3;
+ private static final int MSG_SEND_DTMF = 4;
/**
* Mutes or unmutes the call.
@@ -51,6 +52,13 @@ public class ThirdPartyCallProvider {
// default implementation empty
}
+ /**
+ * Sends the given DTMF code. The code can be '0'-'9', 'A'-'D', '#', or '*'.
+ */
+ public void sendDtmf(char c) {
+ // default implementation empty
+ }
+
final IThirdPartyCallProvider callback = new IThirdPartyCallProvider.Stub() {
@Override
public void mute(boolean shouldMute) {
@@ -66,6 +74,11 @@ public class ThirdPartyCallProvider {
public void incomingCallAccept() {
Message.obtain(mHandler, MSG_INCOMING_CALL_ACCEPT).sendToTarget();
}
+
+ @Override
+ public void sendDtmf(char c) {
+ Message.obtain(mHandler, MSG_SEND_DTMF, (int) c, 0).sendToTarget();
+ }
};
private final Handler mHandler = new Handler() {
@@ -81,6 +94,9 @@ public class ThirdPartyCallProvider {
case MSG_INCOMING_CALL_ACCEPT:
incomingCallAccept();
break;
+ case MSG_SEND_DTMF:
+ sendDtmf((char) msg.arg1);
+ break;
}
}
};
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index eb6c66f..a22e6b6 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -420,6 +420,9 @@ interface ITelephony {
* identified by component to handle the call.
* @param component the component that should handle the intent.
* @param callId the unique id of the call.
+ * @param callerDisplayName the name shown to the user. Normally this will be the caller's phone
+ * number.
*/
- void newIncomingThirdPartyCall(in ComponentName component, String callId);
+ void newIncomingThirdPartyCall(in ComponentName component, String callId,
+ String callerDisplayName);
}
diff --git a/telephony/java/com/android/internal/telephony/IThirdPartyCallProvider.aidl b/telephony/java/com/android/internal/telephony/IThirdPartyCallProvider.aidl
index dcbf877..a9d67a4 100644
--- a/telephony/java/com/android/internal/telephony/IThirdPartyCallProvider.aidl
+++ b/telephony/java/com/android/internal/telephony/IThirdPartyCallProvider.aidl
@@ -38,4 +38,9 @@ oneway interface IThirdPartyCallProvider {
* Accepts the incoming call.
*/
void incomingCallAccept();
+
+ /**
+ * Sends the given DTMF code. The code can be '0'-'9', 'A'-'D', '#', or '*'.
+ */
+ void sendDtmf(char c);
}