【问题标题】:How to confirm embeded device(running android OS) whether has a speaker or not如何确认嵌入式设备(运行android OS)是否有扬声器
【发布时间】:2018-03-23 03:34:45
【问题描述】:

我想确认嵌入式设备(运行 android OS 5.1.1)是否有扬声器。 我试了一下AuidoManager#isSpeakerphoneOn,不管是插入还是移除speaker,总是返回false。

我想知道如何解决这个问题。

【问题讨论】:

    标签: android speaker


    【解决方案1】:

    您可以使用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,这将阻止您的应用安装在没有音频输出设备的设备上。

    【讨论】:

      【解决方案2】:

      您可以只安装在具有输出声音方式的设备上。我认为没有 API 可以判断它当前是否有扬声器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-24
        相关资源
        最近更新 更多