我有一个 ActivityMonitor 类,其中有如下的 attachmentTouchDetectorView() 方法:private void attachmentTouchDetectorView(Activity activity) { WindowManager.LayoutParams layoutParams...
我有一个 ActivityMonitor 类,其中有如下的 attachmentTouchDetectorView() 方法:
private void attachTouchDetectorView(Activity activity) {
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(0, 0, 0, 0, TYPE_APPLICATION, FLAG_NOT_FOCUSABLE|FLAG_NOT_TOUCH_MODAL|FLAG_WATCH_OUTSIDE_TOUCH, TRANSLUCENT);
WindowManager windowManager = activity.getWindowManager();
View view = new View(activity);
//set listener
view.setOnTouchListener(new TouchNotifier());
windowManager.addView(view, layoutParams);
}
该方法创建一个视图并设置触摸监听器TouchNotifier,如下所示:
private class TouchNotifier implements View.OnTouchListener {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
// do your task
// Log.d("Touch event received");
return false;
}
}
当我在 Android 9 上时,我会获取我的活动的所有触摸事件并记录“已收到触摸事件”并打印,但 Android 12 的情况并非如此。
我尝试将 WindowManager.LayoutParams 从
WindowManager.LayoutParams(0, 0, 0, 0, TYPE_APPLICATION, FLAG_NOT_FOCUSABLE|FLAG_NOT_TOUCH_MODAL|FLAG_WATCH_OUTSIDE_TOUCH, TRANSLUCENT)
到
WindowManager.LayoutParams(100, 100, 0, 0, TYPE_APPLICATION, FLAG_NOT_FOCUSABLE|FLAG_NOT_TOUCH_MODAL|FLAG_WATCH_OUTSIDE_TOUCH, TRANSLUCENT)
请注意,高度和宽度已更改为 100 x 100。此更改有效,触摸事件已开始在 android 12 上工作。 我的问题是为什么零高度和宽度视图在 android 9 上工作,而在 android 12 上不工作? 我找不到谷歌记录的任何变化。请帮忙找出从 9 到 12 的行为变化的原因。