Android 5.1: Обнаруживать смахивание (сверху вниз) в прозрачном окне предупреждения при переходе к нижним приложениям? - PullRequest
0 голосов
/ 06 августа 2020

Я хочу иметь TYPE_SYSTEM_ALERT LayoutParam, чтобы создать прозрачное окно, которое может обнаруживать жесты (например, смахивание):

mButton = new Button(this);
mButton.setText("Overlay button");
mButton.setOnTouchListener(this);
final WindowManager.LayoutParams param=new WindowManager.LayoutParams();
param.flags=WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
param.format=PixelFormat.RGBA_8888;
param.type=WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
param.gravity=Gravity.TOP|Gravity.LEFT;
param.width=WindowManager.LayoutParams.WRAP_CONTENT;
param.height=WindowManager.LayoutParams.WRAP_CONTENT;
mWindowManager.addView(mButton, param);

(сейчас я добавляю только OnTouchListener)

Я получаю события касания (думаю, получение жестов не будет проблемой), но базовые приложения не получают эти события касания.

Мой onTouch обработчик:

public boolean onTouch(View view, MotionEvent motionEvent) {
    Log.d(LOG_TAG, "ontouch");
    return false;
}

Как мне это сделать?

Цели:

  1. Обнаружить жест (или событие) смахивания (или касания) в чужом приложении (выше),
  2. Сохранять стороннее приложение, получающее события смахивания (и касания)

Root доступно, но я не думаю, что это нужно - я просто не мог найти правильный способ, потому что Android 5.1 сейчас устаревает.

Примечание: я видел этот поток , в котором указано, что возврат false приведет к тому, что базовое приложение получит событие, но мой эмулятор не передает его к сожалению.

Спасибо

...