android 16代码差异巨大,很多老代码上实现的需求到新代码上无法完美实现,就连系统默认的功能------触摸提示音都无法完美实现。老版本触摸提示音都是通过pwm或者systemui触发,而A16上的代码通过proxy将部分功能从systemui转移到launcher。本文通过trace按键流程代码,用一种简单的方案实现back触摸播放声音。
java
Index: vendor/mediatek/proprietary/packages/apps/Launcher3/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
===================================================================
--- vendor/mediatek/proprietary/packages/apps/Launcher3/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java (revision 711)
+++ vendor/mediatek/proprietary/packages/apps/Launcher3/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java (revision 712)
@@ -973,6 +973,7 @@
}
navButtonController.sendBackKeyEvent(KeyEvent.ACTION_UP, isCancelled);
if (motionEventAction == MotionEvent.ACTION_UP && !isCancelled) {
+ buttonView.playSoundEffect(android.view.SoundEffectConstants.CLICK); // bw@ +
buttonView.performClick();
}
return false;