以下代码可修复如下三种需求
-
在音乐播放器没有挂后台时,点击播放/暂停键、上一首、下一首不能响应任何事件 -
正在看视频时,若音乐播放器在后台,点击暂停、上一首、下一首只能操作视频、不能启动音乐和切换音乐 -
在桌面和其他应用下,点击播放/暂停键不能启动音乐或视频
路径:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@Override
public long interceptKeyBeforeDispatching(IBinder focusedToken, KeyEvent event, int policyFlags) {
case KeyEvent.KEYCODE_MEDIA_PLAY:
case KeyEvent.KEYCODE_MEDIA_PAUSE:
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
case KeyEvent.KEYCODE_HEADSETHOOK:
case KeyEvent.KEYCODE_MUTE:
case KeyEvent.KEYCODE_MEDIA_NEXT:
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
case KeyEvent.KEYCODE_MEDIA_REWIND:
case KeyEvent.KEYCODE_MEDIA_RECORD:
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: {
++ android.app.ActivityManager am = (android.app.ActivityManager) mContext.getSystemService(ACTIVITY_SERVICE);
++ android.content.ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
++ if ((keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) || (keyCode == KeyEvent.KEYCODE_MEDIA_NEXT) || (keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS)){
++ if ((!"xxx.activity".equals(cn.getClassName())) && (!"xxx.music".equals(cn.getPackageName()))){
++ return 0;
++ }
++ }
}
系统APK 开发系列: Android 系统APK-录音机 横屏显示时录制时间不居中 Android 系统APK-录音机 录音过程不能受外部USB插拔影响 Android 系统APK-闹钟 长按进入夜间模式,松开退出夜间模式 Android 系统APK-闹钟 移除时钟内的音量按钮 Android 系统APK-音乐和视频 暂停、上一首、下一首按键修复
|