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 则为其他。

属性

注解

选择应用于通信用例的音频设备,例如语音或视频呼叫。 语音或视频聊天应用程序可以使用此方法来选择与平台默认选择的音频设备不同的音频设备。

设备选择表示为返回的设备#getAvailableCommunicationDevices()之一AudioDeviceInfo。 请注意,只能指定接收器角色中的设备(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><#startBluetoothSco()#stopBluetoothSco()><#setSpeakerphoneOn(boolean)<>/ul<>h4 示例</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.media.AudioManager.setCommunicationDevice(android.media.AudioDeviceInfo)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于