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();
}
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.