Android: permission denied for window type 2038 using TYPE_APPLICATION_OVERLAY

前端 未结 6 1569
礼貌的吻别
礼貌的吻别 2020-12-10 02:28

I trying to create a view that is above other applications:

WindowManager.LayoutParams paramsDirectorView = new WindowManager.LayoutParams(
        WindowMan         


        
6条回答
  •  有刺的猬
    2020-12-10 03:03

    I had the exactly same issue. I guess you should differentiate the target (before and after Oreo)

    int LAYOUT_FLAG;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
         LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
    } else {
            LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_PHONE;
    }
    
    params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            LAYOUT_FLAG,
            WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    

提交回复
热议问题