突破MIUI8权限显示悬浮球
来源:互联网 发布:听书软件 编辑:程序博客网 时间:2024/04/28 02:43
首先声明一下,并不能越过MIUI8的悬浮球权限在桌面上显示悬浮球,但是可以在应用内显示悬浮球。
本文内容是在以下项目的基础上修改的:
继越过权限显示悬浮球https://github.com/pengjianbo/FloatViewFinal (不能越过MIUI8的权限)
尝试过发现,将悬浮球的WindowManager.LayoutParams 的type属性设置成TYPE_APPLICATION即可。
直接改的话在addView()的时候会出现如下错误:
原因是TYPE_APPLICAI的窗口依附的Context必须有一个token。
而service的token值是null。同样,也不能直接依附Appplication的Context
Activity和Service以及Application的Context是不一样的,Activity继承自ContextThemeWraper.其他的继承自ContextWrapper.
Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application at android.view.ViewRootImpl.setView(ViewRootImpl.java:583) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:313) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86) at com.ct108.open.thm.floatview.FloatView.init(FloatView.java:198) at com.ct108.open.thm.floatview.FloatView.<init>(FloatView.java:149) ……</span>
解决办法是让它依赖于指定的Activity。
这样做的代价是悬浮球必须跟着每个需要显示它的Activity的生命周期走。需要在每个Activity的生命周期中做处理。
比如,Bugtags的悬浮球就是这么实现的。
前段时间太忙了,现已将demo补上:
https://github.com/HangminTian/FloatView
0 0
- 突破MIUI8权限显示悬浮球
- 悬浮窗权限突破及兼容性处理
- 突破小米悬浮窗权限控制--不需要权限的悬浮窗
- Android越过悬浮窗权限显示悬浮窗
- Android无需权限显示悬浮窗
- 不用获取权限的悬浮球
- 程序在miui8的系统中调不起权限解决方法。
- Guest权限突破
- 突破访问权限
- WindowManager解析(二)Android悬浮框无法弹出输入法的原因和无需权限显示悬浮窗
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- 鼠标悬浮显示消息
- 简单的悬浮显示
- 显示悬浮按钮
- svn:revert to this version 和 revert changes from this version的区别
- 梦开始的地方
- spring的启动过程
- 【Web前端】键盘按钮编码
- 自定义拦截器
- 突破MIUI8权限显示悬浮球
- 微信商业闭环谈论之微信开放平台实现微信卡券投放实践(附部分JAVA源码)
- 洛谷1186-玛丽卡
- HDU 5877 Weak Pair(dfs+BIT)
- MyBatis mapper文件中的变量引用方式#{}与${}的差别
- Unity与安卓通信
- Android 直接显示yuv数据 通过Awesomeplayer方式直接显示(一)
- android群英传笔记——自定义ViewGroup(类似原生控件ScrollView)
- 图文并茂用地址分析双向链表(很清晰!)