检查android源代码后, 我知道按钮执行单击时会调用视图的performHapticFeedback方法,这样手机就会执行BZZZTT效果。 performHapticFeedback代码如下:
public boolean performHapticFeedback(int feedbackConstant, int flags) {
if (mAttachInfo == null) {
return false;
}
//noinspection SimplifiableIfStatement
if ((flags & HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING) == 0
&& !isHapticFeedbackEnabled()) {
return false;
}
return mAttachInfo.mRootCallbacks.performHapticFeedback(feedbackConstant,
(flags & HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING) != 0);
}
但是,我想知道android如何在物理按钮上执行反馈触觉(例如key_home,key_Back,key_menu)。导致物理按钮不基于View。我已经搜索了整个下午的源代码,但是我没有得到关于物理按钮如何执行触觉反馈的有价值的代码行~~~~ 谁能给我一些提示?
由于
答案 0 :(得分:0)
相对代码行位于PhoneWindowManager.java
- > public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn)
。(在其他上传应用可以处理之前调用);
在判断KeyEvent代码之后,它将通过调用mVibrator.vibrate(pattern[0]);
mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);