Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Android设备是否有内置扬声器_Android - Fatal编程技术网

检查Android设备是否有内置扬声器

检查Android设备是否有内置扬声器,android,Android,如何检查运行Android的设备上是否有扬声器?意思是它能播放音频吗 它有任何配置限定符吗?那么以编程方式呢 编辑:刚买了一块Android Wear手表,它没有扬声器,所以我不确定如何检查这一点我想大多数Android手机都有扬声器:p/。。但是如果你问是否可以检查它是否连接到扬声器或耳机之类的东西,那么你可以使用 if (isBluetoothA2dpOn()) { // Adjust output for Bluetooth. } else if (isSpeakerphoneOn

如何检查运行Android的设备上是否有扬声器?意思是它能播放音频吗

它有任何配置限定符吗?那么以编程方式呢


编辑:刚买了一块Android Wear手表,它没有扬声器,所以我不确定如何检查这一点

我想大多数Android手机都有扬声器:p/。。但是如果你问是否可以检查它是否连接到扬声器或耳机之类的东西,那么你可以使用

if (isBluetoothA2dpOn()) {
    // Adjust output for Bluetooth.
} else if (isSpeakerphoneOn()) {
    // Adjust output for Speakerphone.
} else if (isWiredHeadsetOn()) {
    // Adjust output for headsets
} else { 
    // If audio plays and noone can hear it, is it still playing?
}

来源:

Android API没有任何此类限定符,也没有任何库方法

但这只是一个原始的想法,试着播放一些音频,同时通过麦克风录音。 检查它们是否相同。 这不是一个简单的方法,只是一个想法

由于API级别为21(大多数安卓设备基于此级别),安卓系统提供了一项功能,可以使用witch检测是否有办法输出音频

我在我的MOTO 360(无扬声器)上测试了此功能,它没有此功能,Ticwatch(带扬声器)也有此功能

但当我将蓝牙耳机连接到MOTO 360时,它仍然没有这个功能,这让我很困惑

所以我用它做进一步的检查

检测代码可以如下所示:

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

嗯,我刚买了一块Android Wear手表,它没有音频,所以嗯…我不太确定这是否是我在寻找的,我明白了…有没有什么具体的原因,你需要检查音频(因为即使它播放,你也听不到)…哪家公司??因为安卓手表没有扬声器。他们有一个音频插孔instead@TusharGupta是的,这两款手表没有扬声器。不过,将来可能会有一些。另外,我还尝试使用相同的代码库中的大多数用于wear和mobile,因此如果我有一个解决方案检测到扬声器或未检测到扬声器,那就更好了嘿,你知道你可以使用上面的帖子来做你想做的事,使用最后一个来处理它,例如,如果扬声器和耳机未打开,然后进入决赛。这可能会检查音频是否正在播放,但没有人听到。我没有安卓手表来检查。但当我在静音设备上尝试时,它确实起作用。不确定“尝试播放一些音频并通过麦克风同时录制”,但“无法检查”会获得分数