繁体   English   中英

我调用了 audiomanager.setMode(MODE_IN_CALL) 方法,我的耳机不再工作了

[英]I call the method audiomanager.setMode(MODE_IN_CALL) and my earphone doens't work anymore

正如我上面提到的,我获得了 AudioManager 实例并使用 MODE_IN_CALL 启动它,但是当我关闭我的应用程序(未杀死)时,我在使用其他应用程序时无法使我的耳机工作,请帮忙。是我设置了错误模式是我问题的原因吗? 这是代码:

private boolean initDefaultSensor() {
    if (proximitySensor != null) return true;
    if (sensorManager == null || audioManager == null) return false;
    proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
    if (proximitySensor == null || audioManager == null) {
        return false;
    }
    audioManager.setMode(AudioManager.MODE_IN_CALL);
    return true;
}

我还调用了一些可能与这个问题相关的其他方法

public void OpenSpeaker() {
    try {
        if (!audioManager.isSpeakerphoneOn()) {
            audioManager.setSpeakerphoneOn(true);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void CloseSpeaker() {
    try {
        if (audioManager != null) {
            if (audioManager.isSpeakerphoneOn()) {
                audioManager.setSpeakerphoneOn(false);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

根据我的研究, audioManager.setMode(AudioManager.MODE_IN_CALL)不能在 Android 4.4 以上运行,并且只能由系统应用程序/服务访问。 如果您尝试getMode() ,您将获得AudioManager.MODE_NORMAL作为回报。

但是,如果您想在 Android L 中使用它,则可以使用audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM