主要就是在SystemGesturesPointerEventListener中加了一个回调方法onMorePointerSwipe,当getPointerCount==3的时候调用,然后在PhoneWindowManager中实现onMorePointerSwipe.
+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -2053,6 +2053,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {}
}
@Override
+ public void onMorePointerSwipe() {
+ Log.w("fy","onMorePointerSwipe");
+ if (mStatusBar != null) {
+ int type =// event.isShiftPressed() ? TAKE_SCREENSHOT_SELECTED_REGION:
+ TAKE_SCREENSHOT_FULLSCREEN;
+ mScreenshotRunnable.setScreenshotType(type);
+ mHandler.post(mScreenshotRunnable);
+ }
+ }
+ @Override
public void onSwipeFromBottom() {
if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_BOTTOM) {
requestTransientBars(mNavigationBar);
diff --git a/frameworks/base/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java b/frameworks/base/services/core/java/com/android/server/policy/SystemGesturesPointerEventLi
index eaeffdf..b8db540 100644
--- a/frameworks/base/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java
+++ b/frameworks/base/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java
@@ -135,6 +135,9 @@ public class SystemGesturesPointerEventListener implements PointerEventListener
mCallbacks.onSwipeFromLeft();
}
}
+ if(event.getPointerCount()==3){
+ mCallbacks.onMorePointerSwipe();
+ }
break;
case MotionEvent.ACTION_HOVER_MOVE:
if (event.isFromSource(InputDevice.SOURCE_MOUSE)) {
@@ -288,6 +291,7 @@ public class SystemGesturesPointerEventListener implements PointerEventListener
void onSwipeFromTop();
void onSwipeFromBottom();
void onSwipeFromRight();
+ void onMorePointerSwipe();
void onSwipeFromLeft();
void onFling(int durationMs);