当前位置: 首页 > 知识库问答 >
问题:

Android-如何确定外部扬声器是否已连接

沈永贞
2023-03-14

我想在应用程序中播放声音,除非它不是通过手机的内置扬声器播放的。为此,我假设我需要找出是否连接了外部扬声器(有线扬声器、蓝牙耳机、有线耳机等)。

我看到< code > audio manager . iswiredheadseton()已被弃用,但仍可使用,不过这仅表示已插入有线耳机。蓝牙有类似的选项吗?这是否涵盖了所有可能的音频选项?

相反,如果有一种方法可以告诉您声音将通过内置扬声器传送,那么这种方法可能也同样有效。

共有2个答案

颛孙天宇
2023-03-14

您必须扩展“广播焦点更改侦听器”类。在它的音频焦点更改功能中,您将收到与音频相关的每个事件的通知。

使用< code>AudioManager监控外部扬声器的状态变化。ACTION_HEADSET_PLUG常量(它作为< code>onAudioFocusChange参数提供给您)。

纪畅
2023-03-14
public static boolean isWiredHeadsetConnected() {    
        AudioManager mAudioMgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
        if(mAudioMgr.isWiredHeadsetOn()){

                 mAudioMgr.setWiredHeadsetOn(false);
                 mAudioMgr.setSpeakerphoneOn(true);
                 mAudioMgr.setMode(AudioManager.MODE_IN_COMMUNICATION);

                 Toast.makeText(getApplicationContext(), "SpeakerPhone On", Toast.LENGTH_LONG).show();
          }
}

有一个目的是检测一个是否被插入或拔出:ACTION_HEADSET_PLUG。所以,你必须添加它。

public static boolean isBluetoothHeadsetConnected() {
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()
            && mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED;
} 

蓝牙权限:

<uses-permission android:name="android.permission.BLUETOOTH" />
 类似资料:
  • 播放音符或者歌曲 用法 Your browser does not support the video tag. 案例:小闹钟 功能:今天15:00:00后,用猫叫声叫醒我

  • 扬声器模块能够录制并播放声音。 净重量:24.5g 体积:48×48×13mm 参数 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 支持录音存储 内置多种音效 配合软件支持AI语音识别 配合WiFi模块支持离线运行"

  • 光环板可以连接 mbuild 的 扬声器 模块进行编程。 1. 扬声器(1)播放音符(C4)以(0.25)拍 指定扬声器播放指定音符,并持续指定拍数。 示例 按下光环板的按钮,扬声器1会播放音符C4,持续0.25拍。 2. 扬声器(1)以(700)赫兹播放声音,持续(1)秒 指定扬声器以指定频率播放声音,单位为赫兹,并持续指定时间。 示例 按下光环板的按钮,扬声器1会播放频率为700赫兹的声音,持

  • 该扬声器模块可以播放各类预置的音效,并以极为方便的方式支持用户存储自定义的音频文件到模块中,并通过积木块调用并播放。 存储自定义音频文件 通过以下步骤,存储自定义音频文件到该模块 1. 连接模块至电脑 使用 Micro-USB 数据线连接扬声器模块(Mirco-USB 接口)至电脑(USB 接口)。连接成功后,电脑将显示模块磁盘,打开磁盘即可查看模块包含的文件。 2. 存储自定义音频 将您想要播放

  • 该扬声器模块可以播放各类预置的音效,并以极为方便的方式支持用户存储自定义的音频文件到模块中,并通过积木块调用并播放。 存储自定义音频文件 通过以下步骤,存储自定义音频文件到该模块 1. 连接模块至电脑 使用 Micro-USB 数据线连接扬声器模块(Mirco-USB 接口)至电脑(USB 接口)。连接成功后,电脑将显示模块磁盘,打开磁盘即可查看模块包含的文件。 2. 存储自定义音频 将您想要播放

  • 问题内容: 我如何断言页面的CSS已在Watin 2.1中成功加载并应用了其样式? 问题答案: 在进行了一些研究并写下我的答案之后,我偶然发现了该链接,该链接解释了您需要了解的有关CSS的所有信息,何时加载CSS以及如何检查CSS。 实际上,所提供的链接对它的解释很好,以至于我在其中添加了一些引用以供将来参考。 如果您好奇,我的答案将是#2和#4的变体。 何时真正加载样式表? … 顺便说一句,让我