TelecomManager.AddCall 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.
Adicione uma chamada ao serviço de sistema Android Telecom.
[Android.Runtime.Register("addCall", "(Landroid/telecom/CallAttributes;Ljava/util/concurrent/Executor;Landroid/os/OutcomeReceiver;Landroid/telecom/CallControlCallback;Landroid/telecom/CallEventCallback;)V", "GetAddCall_Landroid_telecom_CallAttributes_Ljava_util_concurrent_Executor_Landroid_os_OutcomeReceiver_Landroid_telecom_CallControlCallback_Landroid_telecom_CallEventCallback_Handler", ApiSince=34)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_OWN_CALLS")]
public virtual void AddCall(Android.Telecom.CallAttributes callAttributes, Java.Util.Concurrent.IExecutor executor, Android.OS.IOutcomeReceiver pendingControl, Android.Telecom.ICallControlCallback handshakes, Android.Telecom.ICallEventCallback events);
[<Android.Runtime.Register("addCall", "(Landroid/telecom/CallAttributes;Ljava/util/concurrent/Executor;Landroid/os/OutcomeReceiver;Landroid/telecom/CallControlCallback;Landroid/telecom/CallEventCallback;)V", "GetAddCall_Landroid_telecom_CallAttributes_Ljava_util_concurrent_Executor_Landroid_os_OutcomeReceiver_Landroid_telecom_CallControlCallback_Landroid_telecom_CallEventCallback_Handler", ApiSince=34)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_OWN_CALLS")>]
abstract member AddCall : Android.Telecom.CallAttributes * Java.Util.Concurrent.IExecutor * Android.OS.IOutcomeReceiver * Android.Telecom.ICallControlCallback * Android.Telecom.ICallEventCallback -> unit
override this.AddCall : Android.Telecom.CallAttributes * Java.Util.Concurrent.IExecutor * Android.OS.IOutcomeReceiver * Android.Telecom.ICallControlCallback * Android.Telecom.ICallEventCallback -> unit
Parâmetros
- callAttributes
- CallAttributes
atributos da nova chamada (entrada ou saída, endereço etc.)
- executor
- IExecutor
contexto de execução para executar CallControlCallback atualizações em
- pendingControl
- IOutcomeReceiver
Recebe o resultado da transação addCall. Após o sucesso, um objeto CallControl é fornecido que pode ser usado para fazer coisas como desconectar a chamada que foi adicionada.
- handshakes
- ICallControlCallback
retorno de chamada que recebe atualizações <b>acionáveis</b> originadas da Telecom.
- events
- ICallEventCallback
retorno de chamada que recebe b<atualizações >não< acionáveis> que se originam da Telecom.
- Atributos
Comentários
Adicione uma chamada ao serviço de sistema Android Telecom. Isso permite que o sistema comece a acompanhar uma chamada de entrada ou saída com a chamada especificada CallAttributes. Depois que uma chamada é adicionada, uma android.app.Notification.CallStyle notificação deve ser postada e quando a chamada estiver pronta para ser desconectada, use CallControl#disconnect(DisconnectCause, Executor, OutcomeReceiver) o que é fornecido pelo pendingControl#onResult(CallControl).
<b>Ciclo de Vida da< Chamada/b>: seu aplicativo recebe prioridade de execução em primeiro plano desde que você tenha uma chamada válida e esteja postando uma android.app.Notification.CallStyle notificação. Quando o aplicativo recebe prioridade de execução em primeiro plano, seu aplicativo é tratado como um serviço em primeiro plano. A prioridade de execução em primeiro plano impedirá que o android.app.ActivityManager aplicativo seja matado quando ele for colocado em segundo plano. A prioridade de execução em primeiro plano é removida do seu aplicativo quando todas as chamadas do aplicativo terminam ou seu aplicativo não publica mais uma notificação válida.
<b>Observação</b>: somente os pacotes com PhoneAccount#CAPABILITY_SUPPORTS_TRANSACTIONAL_OPERATIONS os quais se registram podem utilizar essa API.
PhoneAccounts que definem os recursosPhoneAccount#CAPABILITY_SIM_SUBSCRIPTION, PhoneAccount#CAPABILITY_CALL_PROVIDERPhoneAccount#CAPABILITY_CONNECTION_MANAGER não têm suporte e farão com que uma exceção seja gerada.
<b>Exemplo de uso:</b>
// Its up to your app on how you want to wrap the objects. One such implementation can be:
class MyVoipCall {
...
public CallControlCallEventCallback handshakes = new CallControlCallback() {
...
}
public CallEventCallback events = new CallEventCallback() {
...
}
public MyVoipCall(String id){
...
}
}
MyVoipCall myFirstOutgoingCall = new MyVoipCall("1");
telecomManager.addCall(callAttributes,
Runnable::run,
new OutcomeReceiver() {
public void onResult(CallControl callControl) {
// The call has been added successfully. For demonstration
// purposes, the call is disconnected immediately ...
callControl.disconnect(
new DisconnectCause(DisconnectCause.LOCAL) )
}
},
myFirstOutgoingCall.handshakes,
myFirstOutgoingCall.events);
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.