一分钟get一个android技能

作者: AndroidWorld | 来源:发表于2017-10-17 10:44 被阅读102次

           今天测试android悬浮窗功能的时候遇到一点小问题,最后顺利解决,在此记录一下,如果其他同学也碰到类似问题,可以快速找到答案。

    android实现悬浮窗是通过WindowManager.addView(View view, WindowManager.LayoutParams params)接口来实现的,然后params.type赋值为WindowManager.LayoutParams.TYPE_SYSTEM_ALERT。发现悬浮窗显示不出来,我用的测试机是android_7.1.1(原生系统)的。调试后发现addView抛了异常“android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@886d274 -- permission denied for window type 2003”。这么好的学习机会怎么能错过,如是打开源码一番探究,TYPE_SYSTEM_ALERT需要的权限是通过AppOpsManager.OP_SYSTEM_ALERT_WINDOW控制的,如下图:

    这个权限可以通过系统设置->应用->配置应用->特殊访问权限->出现在其他应用上里设置,进去后找到自己的应用,打开权限即可。

    相关文章

      网友评论

        本文标题:一分钟get一个android技能

        本文链接:https://www.haomeiwen.com/subject/xugruxtx.html