Вопрос по android, touch-event, service – Получение сенсорных событий от службы (решение?)
Итак, ранее я публиковал вопрос о получении сенсорных событий от службы (видимо, никто не знает ответа).
После нескольких часов попыток выяснить это, я сдался и решил написать разработчику, известному как RubberBigPepper. Я спросил его, как он это сделал в своем приложении «Регулятор громкости», и он быстро ответил & quot;TYPE_SYSTEM_ALERT window& Quot ;.
Что это значит, и как это может быть реализовано в коде?
РЕДАКТИРОВАТЬ:
Я использовал следующий метод:
getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
и окно не смогло получить сенсорные события.
Я также написал ему об этом по электронной почте, и он сказал: «Используйте WindowService, чтобы добавить свое окно».
1
ответ
int nFlags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
m_cWM=(WindowManager)getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
nFlags,
PixelFormat.TRANSLUCENT);
m_cWM.addView(YourViewClass, lp);
И не забывайте о разрешениях на использование
Вот что у меня есть: TextView tv = new TextView (this); tv.setText (& Quot; Привет & Quot;); int nFlags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; m_cWM = (WindowManager) getSystemService (Context.WINDOW_SERVICE); WindowManager.LayoutParams lp = new WindowManager.LayoutParams (...) m_cWM.addView (tv, lp); - но текстовое представление появляется только внутри действия. Когда я иду домой, он исчезает, и устройство перестает регистрировать касания.
Denizen