Call.HandoverTo(PhoneAccountHandle, VideoProfileState, Bundle) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicia uma transferência deste Call
para o ConnectionService
identificado por toHandle
.
[Android.Runtime.Register("handoverTo", "(Landroid/telecom/PhoneAccountHandle;ILandroid/os/Bundle;)V", "", ApiSince=28)]
public void HandoverTo (Android.Telecom.PhoneAccountHandle? toHandle, Android.Telecom.VideoProfileState videoState, Android.OS.Bundle? extras);
[<Android.Runtime.Register("handoverTo", "(Landroid/telecom/PhoneAccountHandle;ILandroid/os/Bundle;)V", "", ApiSince=28)>]
member this.HandoverTo : Android.Telecom.PhoneAccountHandle * Android.Telecom.VideoProfileState * Android.OS.Bundle -> unit
Parâmetros
- toHandle
- PhoneAccountHandle
PhoneAccountHandle
ConnectionService
do para entregar este chamado.
- videoState
- VideoProfileState
Indica o estado de vídeo desejado após a transferência (consulte as STATE_*
constantes definidas em VideoProfile
).
- extras
- Bundle
Pacote contendo informações extras a serem passadas ao ConnectionService
- Atributos
Comentários
Inicia uma transferência deste Call
para o ConnectionService
identificado por toHandle
. O videoState especificado indica o estado de vídeo desejado após a transferência.
Uma transferência de chamada é o processo em que uma chamada em andamento é transferida de um aplicativo (ou seja, ConnectionService
para outro aplicativo. O usuário pode, por exemplo, optar por continuar uma chamada de rede móvel em um aplicativo de chamada de vídeo. A chamada de rede móvel através da pilha de telefonia é referida como a origem da transferência e o aplicativo de chamada de vídeo é referido como o destino.
Ao considerar um cenário de transferência, o dispositivo em que esse método é chamado é considerado o dispositivo em>iniciando</em> (uma vez que o usuário inicia a transferência a partir deste dispositivo), e o outro dispositivo é considerado o <dispositivo em>recebendo</em>.<
Quando esse método é chamado no <dispositivo em>initiating</em> , a estrutura de Telecom se vinculará ao ConnectionService
definido pelo toHandle
PhoneAccountHandle
e invocará ConnectionService#onCreateOutgoingHandoverConnection(PhoneAccountHandle, ConnectionRequest)
para informar ao aplicativo de destino que uma solicitação foi feita para entregar uma chamada a ele. O aplicativo retorna uma instância de para representar a chamada de transferência Neste ponto, o aplicativo deve exibir a interface do usuário para indicar ao usuário que uma transferência de Connection
chamada está em andamento.
O aplicativo de destino é responsável por comunicar a solicitação de transferência do <dispositivo em>iniciando</em> para o <dispositivo em>recebendo</em> .
Quando o aplicativo no <dispositivo em>receiving</em> recebe a solicitação de transferência, ele chama TelecomManager#acceptHandover(Uri, int, PhoneAccountHandle)
para continuar o processo de transferência do <dispositivo em>initiating</em> para o <dispositivo em>receiving</em> . Neste ponto, o <aplicativo de destino no dispositivo em>receiving</em> deve mostrar a interface do usuário para permitir que o usuário escolha se deseja continuar sua chamada no aplicativo de destino.
Quando o aplicativo de destino no <dispositivo em>recebimento</em> chama, TelecomManager#acceptHandover(Uri, int, PhoneAccountHandle)
a Telecom ligará ao seu ConnectionService
e ligará ConnectionService#onCreateIncomingHandoverConnection(PhoneAccountHandle, ConnectionRequest)
para informá-lo da solicitação de transferência. O aplicativo retorna uma instância de para representar a chamada de Connection
transferência.
Se o usuário do <dispositivo em>recebimento</em> aceitar a transferência, o aplicativo liga Connection#setActive()
para concluir o processo de entrega; A Telecom desconectará a chamada original. Se o usuário rejeitar a transferência, o aplicativo chamará Connection#setDisconnected(DisconnectCause)
e especificará um DisconnectCause
de DisconnectCause#CANCELED
para indicar que a transferência foi cancelada.
Telecom só permitirá repasses de PhoneAccount
s que declaram PhoneAccount#EXTRA_SUPPORTS_HANDOVER_FROM
. Da mesma forma, o PhoneAccount
especificado por toHandle
deve declarar PhoneAccount#EXTRA_SUPPORTS_HANDOVER_TO
.
Erros no processo de entrega são reportados à InCallService
via Callback#onHandoverFailed(Call, int)
. Erros no processo de entrega são reportados aos envolvidos ConnectionService
via ConnectionService#onHandoverFailed(ConnectionRequest, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.