Вид переднего плана службы отображается поверх всех экранов, кроме экрана настроек специальных возможностей системы. - PullRequest
0 голосов
/ 05 мая 2020

У меня есть приложение, отображающее некоторые виды над любым экраном. Это работало нормально, пока я не обновился до Android 10 (устройство Xiaomi), но теперь, когда я захожу на экран настроек специальных возможностей, мои представления исчезают, когда я go перехожу на другой экран, мои представления появляются снова. Таким образом, очевидно, что экран специальных возможностей имеет более высокий приоритет над другими экранами. Я думал, что это стандартно, пока не нашел другое приложение (Fluid Navigation), которое может отображать свои представления даже над этим экраном!

Вот мой код:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                myViewParams = new WindowManager.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,

                        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
                                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
                                WindowManager.LayoutParams.FLAG_SPLIT_TOUCH |
                                WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
                        PixelFormat.TRANSLUCENT);

            } else {
                myViewParams = new WindowManager.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        WindowManager.LayoutParams.TYPE_PHONE,
                        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
                                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
                                WindowManager.LayoutParams.FLAG_SPLIT_TOUCH |
                                WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
                        PixelFormat.TRANSLUCENT);
            }

mWindowManager.addView(myView, myViewParams );

Я предоставил все разрешения, и он должен нормально работать на всех остальных экранах. Есть предложения?

...