<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
private AudioManager audioManager;
audioManager = ((AudioManager) getSystemService(AUDIO_SERVICE));
private boolean isSpeakerOpen = true;//默认开启手机扬声器
private static int currVolume = 0;//当前音量
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isSpeakerOpen = !isSpeakerOpen;
if (isSpeakerOpen) {
OpenSpeaker();
} else {
CloseSpeaker();
}
}
});
public void OpenSpeaker() {
try {
audioManager.setMode(AudioManager.ROUTE_SPEAKER);
// 获取当前通话音量
currVolume = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
if (!audioManager.isSpeakerphoneOn()) {
audioManager.setSpeakerphoneOn(true);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
AudioManager.STREAM_VOICE_CALL);
}
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, "打开扬声器", Toast.LENGTH_SHORT).show();
}
public void CloseSpeaker() {
try {
if (audioManager != null) {
if (audioManager.isSpeakerphoneOn()) {
audioManager.setSpeakerphoneOn(false);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, currVolume,AudioManager.STREAM_VOICE_CALL);
}
}
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, "关闭扬声器", Toast.LENGTH_SHORT).show();
}
本文首发于我的微信公众号,更多干货文章,请扫描二维码订阅哦: