突破MIUI8权限显示悬浮球

短命女 2022-09-26 03:05 215阅读 0赞

首先声明一下,并不能越过MIUI8的悬浮球权限在桌面上显示悬浮球,但是可以在应用内显示悬浮球。

本文内容是在以下项目的基础上修改的:

继越过权限显示悬浮球https://github.com/pengjianbo/FloatViewFinal (不能越过MIUI8的权限)

尝试过发现,将悬浮球的WindowManager.LayoutParams 的type属性设置成TYPE_APPLICATION即可。

  1. 直接改的话在addView()的时候会出现如下错误:
  2. 原因是TYPE_APPLICAI的窗口依附的Context必须有一个token
  3. servicetoken值是null。同样,也不能直接依附AppplicationContext
  4. ActivityService以及ApplicationContext是不一样的,Activity继承自ContextThemeWraper.其他的继承自ContextWrapper.
  5. Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
  6. at android.view.ViewRootImpl.setView(ViewRootImpl.java:583)
  7. at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:313)
  8. at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86)
  9. at com.ct108.open.thm.floatview.FloatView.init(FloatView.java:198)
  10. at com.ct108.open.thm.floatview.FloatView.<init>(FloatView.java:149)
  11. ……</span>
  12. 解决办法是让它依赖于指定的Activity
  13. 这样做的代价是悬浮球必须跟着每个需要显示它的Activity的生命周期走。需要在每个Activity的生命周期中做处理。
  14. 比如,Bugtags的悬浮球就是这么实现的。

前段时间太忙了,现已将demo补上:

  1. https://github.com/HangminTian/FloatView

发表评论

表情:
评论列表 (有 0 条评论,215人围观)

还没有评论,来说两句吧...

相关阅读

    相关 android miui悬浮按钮,MIUI10悬浮

    MIUI10悬浮球app是一款系统增强方面的手机软件,它可以为用户的手机添加一个MIUI 10风格的“边缘滑动返回”流畅的手势,还可以滑动并按住”以切换到最近使用应用程序。还有

    相关 突破MIUI8权限显示悬浮

    首先声明一下,并不能越过MIUI8的悬浮球权限在桌面上显示悬浮球,但是可以在应用内显示悬浮球。 本文内容是在以下项目的基础上修改的: 继越过权限显示悬浮球[https