【发布时间】:2018-03-23 03:34:45
【问题描述】:
我想确认嵌入式设备(运行 android OS 5.1.1)是否有扬声器。 我试了一下AuidoManager#isSpeakerphoneOn,不管是插入还是移除speaker,总是返回false。
我想知道如何解决这个问题。
【问题讨论】:
我想确认嵌入式设备(运行 android OS 5.1.1)是否有扬声器。 我试了一下AuidoManager#isSpeakerphoneOn,不管是插入还是移除speaker,总是返回false。
我想知道如何解决这个问题。
【问题讨论】:
您可以使用PackageManager 类'PackageManager#hasSystemFeature(String) 在运行时检查给定功能是否存在。
更具体地说,您可以使用常量FEATURE_AUDIO_OUTPUT 查询PackageManager#hasSystemFeature(String),如果设备包含至少一种音频输出形式,例如扬声器、音频插孔或蓝牙流式传输,则返回 true。
PackageManager pm = getPackageManager();
if(pm.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT){
// audio output device present
} else {
// no audio output device present
}
或者,您也可以在 AndroidManifest.xml 中使用 <uses-feature> 元素,将 android:name 设置为 android.hardware.audio.output 并且 require 等于 true,这将阻止您的应用安装在没有音频输出设备的设备上。
【讨论】:
您可以只安装在具有输出声音方式的设备上。我认为没有 API 可以判断它当前是否有扬声器。
【讨论】: