我试图创建一个高于其他应用程序的视图:
WindowManager.LayoutParams paramsDirectorView = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
我查看了其他回复,发现以下“绘制应用程序”的内容:
- 我在清单中有 android.permission.SYSTEM_ALERT_WINDOW
- 我正在做 Settings.canDrawOverlays(this) 检查哪个返回为真。
- 我已经完成了所有位于此处的窗口类型权限被拒绝
我仍然收到“-- 窗口类型 2038 的权限被拒绝”错误。到目前为止,我正在使用 TYPE_PHONE 并且它可以工作,但它已被弃用并说要使用 TYPE_APPLICATION_OVERLAY。有人可以跟进这一点,因为 TYPE_PHONE 答案并不是真正的解决方案,而是 Android O 中已弃用的“补丁工作”解决方案。
我在 Android 7.1.2 上运行
android.view.WindowManager$BadTokenException: 无法添加窗口 android.view.ViewRootImpl$W@1f47e89 -- android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3344) 上 android.app.ActivityThread 的窗口类型 2038 的权限被拒绝.-wrap21(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper .java:154) at android.app.ActivityThread.main(ActivityThread.java:6121) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit .java:889) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 原因:android.view.WindowManager$BadTokenException:无法添加窗口 android.view。ViewRootImpl$W@1f47e89 -- 在 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342) 在 android.view.ViewRootImpl.setView(ViewRootImpl.java:703) 在 android.view.WindowManagerImpl 的窗口类型 2038 的权限被拒绝。 addView(WindowManagerImpl.java:93) 在 HeadService.TwoViewManager.(TwoViewManager.java:99) 在 HeadService.UIHeadService.onStartCommand(UIHeadService.java:65) 在 android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3327) 在 android .app.ActivityThread.-wrap21(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper .loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6121) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android。internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)