打开扬声器的代码如下。
在安卓8,9,10,效果很好,都能成功打开扬声器。不过安卓11测试的时候 无效,调试发现也没有出错,就是没有效果。各位帮我解决一下。
我测试的手机都是三星手机。
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
if (!mSpeakerOn) {
//audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
} else {
//audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(false);
}
updateSpeakerUI();
参考这个试试
public void setSpeakerphoneOn(final boolean enable) {
try {
Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
setForceUse.invoke(null, 1, 1);
}catch (Exception err){
err.printStackTrace();
}
if (enable != audioManager.isSpeakerphoneOn()) {
Log.d(TAG, "setSpeakerphoneOn(): " + enable);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(enable);
}
}