如何检查运行 Android 的设备是否有扬声器?意思是它可以播放音频吗?
是否有任何配置限定符?那么以编程方式呢
编辑:刚刚买了一块 Android Wear 手表,它没有扬声器,所以不知道如何检查这个
从API级别21(大多数Android Wear基于此级别)开始,Android提供了一个功能,PackageManager.FEATURE_AUDIO_OUTPUT http://developer.android.com/intl/ko/reference/android/content/pm/PackageManager.html#FEATURE_AUDIO_OUTPUT,可以用来检测是否有办法输出音频。
我在我的MOTO 360(无扬声器)上测试了此功能,它没有此功能,而Ticwatch(有扬声器)有此功能。
但是当我将蓝牙耳机连接到MOTO 360时,它仍然没有这个功能,这让我很困惑。
所以我用AudioManager.isBluetoothA2dpOn() http://developer.android.com/intl/ko/reference/android/media/AudioManager.html#isBluetoothA2dpOn()以便进一步检查。
检测代码可以是这样的:
public boolean hasAudioOutput() {
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
PackageManager packageManager = getPackageManager();
if (audioManager.isBluetoothA2dpOn()) {
// Adjust output for Bluetooth.
return true;
} else if (audioManager.isBluetoothScoOn()) {
// Adjust output for Bluetooth of sco.
return true;
} else if (audioManager.isWiredHeadsetOn()) {
// Adjust output for headsets
return true;
} else if (audioManager.isSpeakerphoneOn()) {
// Adjust output for Speakerphone.
return true;
} else if (packageManager.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) {
// Has internal speaker or other form of audio output.
return true;
} else {
// No device for audio output.
return false;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)