Intereting Posts
Google Play Services не работает на Android-эмуляторе API уровня 11 Android – html от android_assets в WebView, CSS не загружается в ICS Получить данные профиля из Facebook SDK на Android всегда возвращают Null. Зачем? Как построить форму трапеции в андроиде? Где я могу определить XML для виджета панели инструментов в Android 5.0? Объявление Eclipse ADT Open в макете больше не используется Bluetooth: Перенос вызова с исходного телефона Android в комплект для создания звука-звука? Запуск всех модульных тестов в Android Studio Android.Views.InflateException: двоичная строка XML-файла # 17: ошибка раздувания класса android.support.design.internal.NavigationMenuItemView Как сгенерировать apk на сервере с изменением имени приложения и значка автоматически в Android? Изменить имя файла apk в градиенте не удалось с помощью gradle: 3.0.0-alpha4 Android, сохранение и загрузка растрового изображения в кеше из разных видов деятельности Остаток логотипа панели действий оставлен Как передать текстуры из одного контекста OpenGL в другой GPS не включен, но isProviderEnabled () возвращает true

Комбинация WindowManager.LayoutParams, которая может передавать события слоям под TYPE_SYSTEM_ALERT или smilar

Может кто-то, пожалуйста, помогите мне получить комбинацию WindowManager.LayoutParams, которая может передавать события слоям под TYPE_SYSTEM_ALERT или аналогичным типом оверлея (который находится сверху каждого другого окна).

Проблема. Моя проблема заключается в том, что тип окна TYPE_SYSTEM_ALERT получает фокус, чтобы остановить передачу событий движения другим приложениям под ним.

Образец кода

WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT); 

Требование: мне нужно получить TYPE_SYSTEM_ALERT или аналогичный тип наложения, который остается поверх каждого другого окна, а также получает события движения, а также передает события движения на любой оверлей под верхним слоем (возможно, TYPE_SYSTEM_ALERT).

Мне нужно, чтобы он оставался поверх всех остальных окон, поскольку мне нужно рисовать изображения поверх всех окон, не прерывая события движения.

Ну, из документов это говорит:

TYPE_SYSTEM_ALERT – Тип окна: системное окно, например предупреждение о низкой мощности. Эти окна всегда находятся поверх окон приложений. В многопользовательских системах отображается только в окне пользовательского пользователя.

Ссылка здесь: https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_SYSTEM_ALERT

Я тестировал это немного, и это означает, что представления отображаются почти во всем (включая диалоги с разрешениями с Android 6.0), в результате чего они теряют фокус. Уровень блокировки клавиатуры остается на вершине. Да, вы можете потерять focusable атрибут в своих представлениях, но вы можете потенциально справиться со всем в сенсорном прослушивателе. Например, посмотрите этот пост: Как использовать View.OnTouchListener вместо onClick