Call.HandoverTo(PhoneAccountHandle, VideoProfileState, Bundle) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Avvia un passaggio di questo Call
oggetto all'oggetto ConnectionService
identificato da 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
Parametri
- toHandle
- PhoneAccountHandle
PhoneAccountHandle
dell'oggetto ConnectionService
a cui consegnare la chiamata.
- videoState
- VideoProfileState
Indica lo stato del video desiderato dopo l'handover (vedere le STATE_*
costanti definite in VideoProfile
).
- extras
- Bundle
Bundle contenente informazioni aggiuntive da passare al ConnectionService
- Attributi
Commenti
Avvia un passaggio di questo Call
oggetto all'oggetto ConnectionService
identificato da toHandle
. Il videoState specificato indica lo stato video desiderato dopo il passaggio.
Un handover di chiamata è il processo in cui viene trasferita una chiamata in corso da un'app ,ad esempio ConnectionService
a un'altra app. L'utente potrebbe, ad esempio, scegliere di continuare una chiamata di rete mobile in un'app di videochiamata. La chiamata di rete mobile tramite lo stack di telefonia viene definita origine dell'handover e l'app di videochiamata viene definita destinazione.
Quando si considera uno scenario di consegna, il dispositivo su cui viene chiamato questo metodo viene considerato il <dispositivo em>di avvio</em> (poiché l'utente avvia la consegna da questo dispositivo) e l'altro dispositivo viene considerato il <>dispositivo di ricezione</em> em.
Quando questo metodo viene chiamato sul <dispositivo em>di avvio</em> , il framework telecom verrà associato all'oggetto ConnectionService
definito da toHandle
PhoneAccountHandle
e richiamerà ConnectionService#onCreateOutgoingHandoverConnection(PhoneAccountHandle, ConnectionRequest)
per informare l'app di destinazione che è stata effettuata una richiesta di consegna di una chiamata. L'app restituisce un'istanza di Connection
per rappresentare la chiamata di consegna A questo punto l'app deve visualizzare l'interfaccia utente per indicare all'utente che è in corso un passaggio di chiamata.
L'app di destinazione è responsabile della comunicazione della richiesta di consegna dal dispositivo em>di avvio</em> al <dispositivo em>ricevente</em>.<
Quando l'app sul <dispositivo ricevente<>/em> riceve la richiesta di consegna, chiama TelecomManager#acceptHandover(Uri, int, PhoneAccountHandle)
per continuare il processo di consegna dall'avvio <><em/em> dispositivo al>< dispositivo em ricevente</em.> A questo punto l'app di destinazione nel <><dispositivo ricevente/em> deve mostrare l'interfaccia utente per consentire all'utente di scegliere se continuare la chiamata nell'app di destinazione.
Quando l'app di destinazione sul <dispositivo ricevente<>/em> chiama TelecomManager#acceptHandover(Uri, int, PhoneAccountHandle)
, Telecom si associa alla relativa ConnectionService
chiamata e ConnectionService#onCreateIncomingHandoverConnection(PhoneAccountHandle, ConnectionRequest)
per informarla della richiesta di consegna. L'app restituisce un'istanza di Connection
per rappresentare la chiamata di consegna.
Se l'utente del <dispositivo ricevente></em> accetta l'handover, l'app chiama Connection#setActive()
per completare il processo di consegna; Telecom disconnetterà la chiamata originale. Se l'utente rifiuta l'handover, l'app chiama Connection#setDisconnected(DisconnectCause)
e specifica un DisconnectCause
di DisconnectCause#CANCELED
per indicare che l'handover è stato annullato.
Telecom consentirà solo gli handover da PhoneAccount
s che dichiarano PhoneAccount#EXTRA_SUPPORTS_HANDOVER_FROM
. Analogamente, l'oggetto PhoneAccount
specificato da toHandle
deve dichiarare PhoneAccount#EXTRA_SUPPORTS_HANDOVER_TO
.
Gli errori nel processo di consegna vengono segnalati all'oggetto InCallService
tramite Callback#onHandoverFailed(Call, int)
. Gli errori nel processo di consegna vengono segnalati agli oggetti coinvolti ConnectionService
tramite ConnectionService#onHandoverFailed(ConnectionRequest, int)
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.