Поделиться через


AudioManager.SetCommunicationDevice(AudioDeviceInfo) Метод

Определение

Выбирает звуковое устройство, которое должно использоваться для вариантов использования связи, например голосовых или видеозвонков.

[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

Параметры

device
AudioDeviceInfo

запрошенное звуковое устройство.

Возвращаемое значение

true Значение , если запрос был принят, false в противном случае.

Атрибуты

Комментарии

Выбирает звуковое устройство, которое должно использоваться для вариантов использования связи, например голосовых или видеозвонков. Этот метод можно использовать приложениями голосового или видео чата, чтобы выбрать другое звуковое устройство, отличное от выбранного по умолчанию платформой.

Выбор устройства выражается как среди AudioDeviceInfo устройств, возвращаемых #getAvailableCommunicationDevices(). Обратите внимание, что можно указать только устройства в роли приемника (устройства вывода AKA, см. раздел AudioDeviceInfo#isSink()). Соответствующее исходное устройство выбирается автоматически платформой.

Выбор активен до тех пор, пока запрашивающий процесс приложения не будет вызван или пока #clearCommunicationDevice устройство не будет отключено. Поэтому важно, чтобы приложения очищали запрос, когда вызов заканчивается, или действие запроса или служба остановлены или уничтожены.

В случае одновременных запросов несколькими приложениями приоритет предоставляется приложению, которое в настоящее время управляет звуковым режимом (см. раздел #setMode(int)). Это последнее приложение с выбранным режимом #MODE_IN_COMMUNICATION или режимом #MODE_IN_CALL. Обратите внимание, что MODE_IN_CALL можно выбрать только основное приложение телефонии с разрешением Manifest.permission#MODIFY_PHONE_STATE.

Если запрошенные устройства в настоящее время недоступны, запрос будет отклонен, и метод вернет false.

Этот API заменяет следующие устаревшие API: <ul<>li li li#startBluetoothSco()><li/>#stopBluetoothSco()<<>#setSpeakerphoneOn(boolean)ul<>h4 Example</h4>>

В приведенном ниже примере показано, как включить и отключить режим динамиков.

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

Документация по Java для android.media.AudioManager.setCommunicationDevice(android.media.AudioDeviceInfo).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к