Compartir a través de


AudioManager.SetCommunicationDevice(AudioDeviceInfo) Método

Definición

Selecciona el dispositivo de audio que se debe usar para casos de uso de comunicación, por ejemplo, llamadas de voz o 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

el dispositivo de audio solicitado.

Devoluciones

true si se aceptó la solicitud; de lo contrario, false .

Atributos

Comentarios

Selecciona el dispositivo de audio que se debe usar para casos de uso de comunicación, por ejemplo, llamadas de voz o vídeo. Las aplicaciones de chat de voz o vídeo pueden usar este método para seleccionar un dispositivo de audio diferente al seleccionado de forma predeterminada por la plataforma.

La selección del dispositivo se expresa como entre AudioDeviceInfo los dispositivos devueltos por #getAvailableCommunicationDevices(). Tenga en cuenta que solo se pueden especificar dispositivos en un rol receptor (dispositivos de salida de AKA, consulte AudioDeviceInfo#isSink()). La plataforma selecciona automáticamente el dispositivo de origen coincidente.

La selección está activa siempre que el proceso de solicitud de aplicación se mantenga activo, hasta #clearCommunicationDevice que se llame a o hasta que se desconecte el dispositivo. Por lo tanto, es importante que las aplicaciones borren la solicitud cuando finaliza una llamada o se detiene o se destruye la actividad o el servicio solicitante.

En el caso de solicitudes simultáneas por varias aplicaciones, la prioridad se asigna a la aplicación que controla actualmente el modo de audio (consulte #setMode(int)). Esta es la aplicación más reciente que tiene seleccionado el modo #MODE_IN_COMMUNICATION o el modo #MODE_IN_CALL. Tenga en cuenta que MODE_IN_CALL la aplicación de telefonía principal solo puede seleccionarla con permiso Manifest.permission#MODIFY_PHONE_STATE.

Si los dispositivos solicitados no están disponibles actualmente, se rechazará la solicitud y el método devolverá false.

Esta API reemplaza las siguientes API en desuso: <ul><li<>#startBluetoothSco()li li><#stopBluetoothSco()li h4>><<#setSpeakerphoneOn(boolean)> Example</h4>

En el ejemplo siguiente se muestra cómo habilitar y deshabilitar el modo de altavoz.

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

Documentación de Java para android.media.AudioManager.setCommunicationDevice(android.media.AudioDeviceInfo).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a