[英]AudioManager is introducing delay in the setMode(MODE_IN_COMMUNICATION)
[英]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.