gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:37:37 24 4
gpt4 key购买 nike

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

我看到 AudioManager.isWiredHeadsetOn() 已被弃用但仍然有效,但这仅表明已插入有线耳机。蓝牙是否有类似的选项?这会涵盖所有可能的音频选项吗?

相反,如果有办法告诉声音将通过内置扬声器传送,那可能同样有效。

最佳答案

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

有一个检测是否插入或拔出的 Intent :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" />

关于Android - 如何确定是否连接了外部扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com