您的位置:首页 > 移动开发 > Android开发

android 4.1 键盘静音键 KEYCODE_VOLUME_MUTE 无效问题

2013-05-27 10:47 337 查看
客户提供的特殊键盘,静音按键,但是按下去之后,声音不能静音,一路跟踪代码,发现是AudioManager.java的handleKeyDown没有做相关处理。

修改:红色添加部分.

public void handleKeyDown(KeyEvent event, int stream) {
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
case KeyEvent.KEYCODE_VOLUME_DOWN:
/*
* Adjust the volume in on key down since it is more
* responsive to the user.
*/
int flags = FLAG_SHOW_UI | FLAG_VIBRATE;
if (mUseMasterVolume) {
adjustMasterVolume(
keyCode == KeyEvent.KEYCODE_VOLUME_UP
? ADJUST_RAISE
: ADJUST_LOWER,
flags);
} else {
adjustSuggestedStreamVolume(
keyCode == KeyEvent.KEYCODE_VOLUME_UP
? ADJUST_RAISE
: ADJUST_LOWER,
stream,
flags);
}
break;
case KeyEvent.KEYCODE_VOLUME_MUTE:
if (event.getRepeatCount() == 0) {
if (mUseMasterVolume) {
setMasterMute(!isMasterMute());
} else {
// TODO: Actually handle MUTE

this.setRingerMode(AudioManager.RINGER_MODE_SILENT);
adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_SAME,
AudioManager.FLAG_SHOW_UI);

}
}
break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: