添加search + home +back +menu 四个物理按键添加震动效果
在./frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java里面
将:
if (down && (policyFlags & WindowManagerPolicy.FLAG_VIRTUAL) != 0 && event.getRepeatCount() == 0)
改为:
if (down && (keyCode == KeyEvent.KEYCODE_HOME || keyCode == KeyEvent.KEYCODE_BACK|| keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_SEARCH) && event.getRepeatCount() == 0)
就实现了改功能。
(展讯)Android:触控和触感
Android系统的很多初始化数据,默认值较小,
方案公司开发的手机,硬件方面的用料不同,以致体现不了某些基础功能;
如触控和触感,
触感,体现在触屏下面的几个按键上,开启时,点击有轻微的震动;
触控,开启类似三星密码图案锁时,手指在屏幕上滑动,感觉轻微的震动;
公司开发一款手机时,大家都觉得这两个功能没有起效,
后来仔细研究代码,
最终在frameworks/base/core/res/res/values/config.xml中,
##<!-- Vibrator pattern for feedback about touching a virtual key -->
## <integer-array name="config_virtualKeyVibePattern">
## <item>0</item>
## <item>10</item>
## <item>20</item>
## <item>30</item>
## </integer-array>
找到这个数组,第一个值为等待时间(微妙),第二值为震动时间,上面表示震动两次。
解释: 0 10 一组,间隔0,震动10 ; 20 30一组,间隔20,震动30.总共震动两次
再去仔细感受手机,发现确实存在震动,只是太轻微几乎感觉不到。
反复修改后,下面的数组值还不错,
##<!-- Vibrator pattern for feedback about touching a virtual key -->
## <integer-array name="config_virtualKeyVibePattern">
## <item>0</item>
## <item>50</item>
## </integer-array>
震动一次,干脆利落,感觉刚刚好!