Compartilhar via


AudioManager.SetCommunicationDevice(AudioDeviceInfo) Método

Definição

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_CALLselecionado. 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();
            }

Documentação Java para android.media.AudioManager.setCommunicationDevice(android.media.AudioDeviceInfo).

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.

Aplica-se a