API declarations for Call Handover.
Design doc: https://docs.google.com/document/d/1qY3oAzjff_4A1ttYb_CGrE_OwTRmXMG_KGsIuPT1ey8/edit# Bug: 65415068 Test: manual. Change-Id: I0c2f561d92ad6504f858eadde09980fc1ce8727f
This commit is contained in:
@@ -1749,6 +1749,41 @@ public class TelecomManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called from the recipient side of a handover to indicate a desire to accept the handover
|
||||
* of an ongoing call to another {@link ConnectionService} identified by
|
||||
* {@link PhoneAccountHandle} destAcct. For managed {@link ConnectionService}s, the specified
|
||||
* {@link PhoneAccountHandle} must have been registered with {@link #registerPhoneAccount} and
|
||||
* the user must have enabled the corresponding {@link PhoneAccount}. This can be checked using
|
||||
* {@link #getPhoneAccount}. Self-managed {@link ConnectionService}s must have
|
||||
* {@link android.Manifest.permission#MANAGE_OWN_CALLS} to handover a call to it.
|
||||
* <p>
|
||||
* Once invoked, this method will cause the system to bind to the {@link ConnectionService}
|
||||
* associated with the {@link PhoneAccountHandle} destAcct and call
|
||||
* (See {@link ConnectionService#onCreateIncomingHandoverConnection}).
|
||||
* <p>
|
||||
* For a managed {@link ConnectionService}, a {@link SecurityException} will be thrown if either
|
||||
* the {@link PhoneAccountHandle} destAcct does not correspond to a registered
|
||||
* {@link PhoneAccount} or the associated {@link PhoneAccount} is not currently enabled by the
|
||||
* user.
|
||||
* <p>
|
||||
* For a self-managed {@link ConnectionService}, a {@link SecurityException} will be thrown if
|
||||
* the calling app does not have {@link android.Manifest.permission#MANAGE_OWN_CALLS}.
|
||||
*
|
||||
* @param srcAddr The {@link android.net.Uri} of the ongoing call to handover to the caller’s
|
||||
* {@link ConnectionService}.
|
||||
* @param videoState Video state after the handover.
|
||||
* @param destAcct The {@link PhoneAccountHandle} registered to the calling package.
|
||||
*/
|
||||
public void acceptHandover(Uri srcAddr, int videoState, PhoneAccountHandle destAcct) {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
getTelecomService().acceptHandover(srcAddr, videoState, destAcct);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "RemoteException acceptHandover: " + e);
|
||||
}
|
||||
}
|
||||
|
||||
private ITelecomService getTelecomService() {
|
||||
if (mTelecomServiceOverride != null) {
|
||||
|
||||
Reference in New Issue
Block a user