Я хочу иметь 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;
}
Как мне это сделать?
Цели:
- Обнаружить жест (или событие) смахивания (или касания) в чужом приложении (выше),
- Сохранять стороннее приложение, получающее события смахивания (и касания)
Root доступно, но я не думаю, что это нужно - я просто не мог найти правильный способ, потому что Android 5.1 сейчас устаревает.
Примечание: я видел этот поток , в котором указано, что возврат false приведет к тому, что базовое приложение получит событие, но мой эмулятор не передает его к сожалению.
Спасибо