Кажется, мне не удается передать события касания через окно в систему. С помощью logcat я узнал, что система устанавливает в моем окне флаг FLAG_SLIPPERY, который предотвращает передачу событий касания в систему.
Насколько я понимаю, это — это флаг безопасности, но я не нашел способа отключить этот флаг.
На Realme 6 pro (Android 11) все работает нормально, а на Motorola Edge 30 ( Android 12), это не так.
Код: Выделить всё
canvasLayoutParams_vi = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
canvasLayoutParams_vi.gravity = Gravity.TOP | Gravity.START;
canvasLayoutParams_vi.x = 0;
canvasLayoutParams_vi.y = 0;
vi = new EmptyView(this);
windowManager.addView(vi, canvasLayoutParams_vi);
Код: Выделить всё
Letterbox_left_ActivityRecord{606481 u0 com.MyApp/.MainActivity t377} has FLAG_SLIPPERY. Please report this in b/157929241
Подробнее здесь: https://stackoverflow.com/questions/790 ... the-system
Мобильная версия