Вылет Overlay Layout в Android O

Я использую этот код, чтобы показать макет наложения в моем приложении. В андроиде 8.0 "Oreo" вылетает

WindowManager.LayoutParams playerParams = new WindowManager.LayoutParams(
        ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.MATCH_PARENT,
        WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        PixelFormat.TRANSLUCENT);

Я обнаружил, что этот TYPE_SYSTEM_ERROR устарел в O. Есть ли другой способ показать макет.

1 ответ

Я также столкнулся с той же проблемой, TYPE_SYSTEM_ERROR устарела в oreo, поэтому, если нам нужно использовать это, нам нужно сделать это

WindowManager.LayoutParams params;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            PixelFormat.TRANSLUCENT);
} else {
    params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            PixelFormat.TRANSLUCENT);
}

Вы можете попробовать это.

Другие вопросы по тегам