AudioManager.SetCommunicationDevice(AudioDeviceInfo) 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.
Seleciona o dispositivo de áudio que deve ser usado para casos de uso de comunicação, por exemplo, chamadas de voz ou vídeo.
[Android.Runtime.Register("setCommunicationDevice", "(Landroid/media/AudioDeviceInfo;)Z", "GetSetCommunicationDevice_Landroid_media_AudioDeviceInfo_Handler", ApiSince=31)]
public virtual bool SetCommunicationDevice (Android.Media.AudioDeviceInfo device);
[<Android.Runtime.Register("setCommunicationDevice", "(Landroid/media/AudioDeviceInfo;)Z", "GetSetCommunicationDevice_Landroid_media_AudioDeviceInfo_Handler", ApiSince=31)>]
abstract member SetCommunicationDevice : Android.Media.AudioDeviceInfo -> bool
override this.SetCommunicationDevice : Android.Media.AudioDeviceInfo -> bool
Parâmetros
- device
- AudioDeviceInfo
o dispositivo de áudio solicitado.
Retornos
true
se o pedido foi aceito, false
caso contrário.
- Atributos
Comentários
Seleciona o dispositivo de áudio que deve ser usado para casos de uso de comunicação, por exemplo, chamadas de voz ou vídeo. Esse método pode ser usado por aplicativos de bate-papo de voz ou vídeo para selecionar um dispositivo de áudio diferente daquele selecionado por padrão pela plataforma.
A seleção de dispositivos é expressa como um AudioDeviceInfo
entre dispositivos retornados por #getAvailableCommunicationDevices()
. Observe que somente dispositivos em uma função de coletor (dispositivos de saída AKA, consulte AudioDeviceInfo#isSink()
) podem ser especificados. O dispositivo de origem correspondente é selecionado automaticamente pela plataforma.
A seleção fica ativa enquanto durar o processo de solicitação de inscrição, até #clearCommunicationDevice
que seja chamado ou até que o dispositivo seja desconectado. Portanto, é importante que os aplicativos limpem a solicitação quando uma chamada termina ou a atividade ou serviço solicitante é interrompido ou destruído.
No caso de solicitações simultâneas por vários aplicativos, a prioridade é dada ao aplicativo que atualmente controla o modo de áudio (consulte #setMode(int)
). Este é o aplicativo mais recente com modo #MODE_IN_COMMUNICATION
ou modo #MODE_IN_CALL
selecionado. Observe que MODE_IN_CALL
só pode ser selecionado pelo aplicativo de telefonia principal com permissão Manifest.permission#MODIFY_PHONE_STATE
.
Se os dispositivos solicitados não estiverem disponíveis no momento, a solicitação será rejeitada e o método retornará false.
Essa API substitui as seguintes APIs preteridas: <ul<>li#startBluetoothSco()
<>li#stopBluetoothSco()
><li<#setSpeakerphoneOn(boolean)
>/ul<>h4>Exemplo</h4>
O exemplo abaixo mostra como ativar e desativar o modo viva-voz.
// Get an AudioManager instance
AudioManager audioManager = Context.getSystemService(AudioManager.class);
AudioDeviceInfo speakerDevice = null;
List<AudioDeviceInfo> devices = audioManager.getAvailableCommunicationDevices();
for (AudioDeviceInfo device : devices) {
if (device.getType() == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) {
speakerDevice = device;
break;
}
}
if (speakerDevice != null) {
// Turn speakerphone ON.
boolean result = audioManager.setCommunicationDevice(speakerDevice);
if (!result) {
// Handle error.
}
// Turn speakerphone OFF.
audioManager.clearCommunicationDevice();
}
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.