При добавлении вида в окно с WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, он не получает сенсорное событие

Мне нужно отобразить мой вид поверх приложения для набора номера, поэтому для этой цели я использовал TYPE_PHONE, который можно прикоснуться, но все же на некоторых устройствах, таких как приложение для набора номера Nexus 5, его скрывает.

Пробовал использовать TYPE_SYSTEM_OVERLAY, что делает вид видимым поверх приложения дозвона, но касания там нет. Любая помощь по этому поводу будет большой.

Ответ 1

После многого поиска проблемы выше, я нашел решение самостоятельно. Вот как я сделал вид, чтобы быть на вершине всего внутри устройства, а также сделать его осязаемым, что было невозможно с TYPE_SYSTEM_OVERLAY.

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                        WindowManager.LayoutParams.MATCH_PARENT,
                        WindowManager.LayoutParams.WRAP_CONTENT,
                        WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
                        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
                        PixelFormat.TRANSPARENT);

params.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(view, params);