Java 我调用audiomanager.setMode方法(MODE_IN_call)和我的耳机doens';我不再工作了
如上所述,我获取AudioManager实例并使用MODE_IN_CALL启动它,但是当我关闭我的应用程序(未关闭)时,我无法使我的耳机在使用其他应用程序时工作,请帮助。是我设置了错误的模式导致了我的问题吗? 代码如下:Java 我调用audiomanager.setMode方法(MODE_IN_call)和我的耳机doens';我不再工作了,java,android,android-audiomanager,headset,Java,Android,Android Audiomanager,Headset,如上所述,我获取AudioManager实例并使用MODE_IN_CALL启动它,但是当我关闭我的应用程序(未关闭)时,我无法使我的耳机在使用其他应用程序时工作,请帮助。是我设置了错误的模式导致了我的问题吗? 代码如下: private boolean initDefaultSensor() { if (proximitySensor != null) return true; if (sensorManager == null || audioManager == null)
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\u IN\u CALL)
,在Android 4.4上无法工作,只能通过系统应用程序/服务访问。如果您尝试getMode()
,您将得到AudioManager.MODE\u NORMAL
然而,如果你想在安卓L中使用它,你可以使用
audioManager.setMode(audioManager.MODE\u in_COMMUNICATION)
根据我的研究,audioManager.setMode(audioManager.MODE\u in_CALL)
在安卓4.4之上不起作用,只能通过系统应用程序/服务访问。如果您尝试getMode()
,您将得到AudioManager.MODE\u NORMAL
但是,如果您想在Android L中使用它,您可以使用
audioManager.setMode(audioManager.MODE_in_COMMUNICATION)
在onPause中清除audio manager实例,并在中重新分配它onResume@Pro:您在onPause中添加了对清单文件Clear audio manager实例的用户权限,并在中重新分配onResume@Pro:您添加了对清单文件的用户权限