728x90

permission denied for this window type/BadTokenException


윈도우 팝업창이 뜨지 않고 에러가 발생하면서 죽는다.

검색해보네 API Level 19 이상에서는

WindowManager.LayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

을 사용하지 말고

LayoutParams.TYPE_TOAST or TYPE_APPLICATION_PANEL

를 사용하라고 나온다.


그래서 아래와 같이 변경했더니 앱이 죽지 않고 팝업창이 잘 뜬다.


mParams = new WindowManager.LayoutParams(
   width,
   WindowManager.LayoutParams.WRAP_CONTENT,
   WindowManager.LayoutParams.TYPE_TOAST,
   WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
           | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
           | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
           | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
   PixelFormat.TRANSLUCENT);

블로그 이미지

Link2Me

,