zoukankan      html  css  js  c++  java
  • 手机QQ后台清理不掉的秘密——anddroid悬浮窗

    问题来自于一篇文章:手机QQ后台为何清不掉?MIUIproject师:全靠1像素的页面保命

    出于好奇,想知道这一像素究竟是啥东西,用手机安全管家控制QQ的悬浮窗权限:

    关闭QQ的悬浮窗权限,通过后台一键清理,又一次打开QQ,发现是从splash開始的;

    打开QQ的悬浮窗权限,一键清理后,打开QQ。发现是直接进入主界面的。说明一键清理未清理QQ,或者清理之后,QQ又自启动了。

    至于。是未被清理还是自启动,后面再探究一下。这里就说说这个一像素的悬浮窗。

            Button button = new Button(getApplicationContext());
            WindowManager wm = (WindowManager) getApplicationContext()
                    .getSystemService(Context.WINDOW_SERVICE);
            WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
    
            /**
             * 下面都是WindowManager.LayoutParams的相关属性 详细用途请參考SDK文档
             */
            wmParams.type = LayoutParams.TYPE_PHONE; // 这里是关键,你也能够试试2003
            wmParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明
            /**
             * 这里的flags也非常关键 代码实际是wmParams.flags |= FLAG_NOT_FOCUSABLE;
             * 40的由来是wmParams的默认属性(32)+ FLAG_NOT_FOCUSABLE(8)
             */
            wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | LayoutParams.FLAG_NOT_FOCUSABLE
                    | LayoutParams.FLAG_NOT_TOUCHABLE;
            wmParams.width = 40;
            wmParams.height = 40;
            wm.addView(button, wmParams); // 创建View

    加入权限

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

    就这么简单加入了一个悬浮窗,无论返回launcher还是打开什么应用,都会一直显示这个button。

    QQ的这个悬浮窗是做得比較小,应该还是透明的,还会放在靠边或者角落里,假设通过这个悬浮窗来保证QQ始终在后台进程,带我再探究一下。



  • 相关阅读:
    洛谷 P1195 口袋的天空
    洛谷 P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
    Bzoj3277 串
    Bzoj1312 / POJ3155 Neerc2006 Hard Life
    Bzoj2655 calc
    51Nod 1228 序列求和
    洛谷P2901 [USACO08MAR]牛慢跑Cow Jogging
    Bzoj1042 [HAOI2008]硬币购物
    Bzoj3884 上帝与集合的正确用法
    Bzoj4161 Shlw loves matrixI
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7206456.html
Copyright © 2011-2022 走看看