最近研究锁屏,按照常规的方法,常规方法如下
    public void onAttachedToWindow()      {               this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);                 super.onAttachedToWindow();       }   



但是这个方法到了4.0的系统上就失效了,按home照样会返回桌面。apktool了几个锁屏的软件之后发现其实现方法,即用WindowManager的addview方法将view加到窗口上,加上的时候将view的layoutparamas的type设为LayoutParams.TYPE_SYSTEM_ERROR,这个值sdk的解释为
  public static final int TYPE_SYSTEM_ERROR       Since: API Level 1       Window type: internal system error windows, appear on top of everything they can.   


如果直接这样用会报错,还要在AndroidManifest.xml里面加上权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>,ok上完整代码,封装了一个类,其中Lock和hide方法实现锁屏和解锁。
public class LockLayer {      private Activity mActivty;      private WindowManager mWindowManager;      private View mLockView;      private LayoutParams mLockViewLayoutParams;            public LockLayer(Activity act) {          mActivty = act;          init();      }        private void init(){          mWindowManager = mActivty.getWindowManager();          mLockViewLayoutParams = new LayoutParams();          mLockViewLayoutParams.width = LayoutParams.MATCH_PARENT;          mLockViewLayoutParams.height = LayoutParams.MATCH_PARENT;          //实现关键          mLockViewLayoutParams.type = LayoutParams.TYPE_SYSTEM_ERROR;          //apktool value,这个值具体是哪个变量还请网友帮忙          mLockViewLayoutParams.flags = 1280;      }      public void lock() {          if(mLockView!=null){              mWindowManager.addView(mLockView, mLockViewLayoutParams);          }      }      public void unlock() {          if(mWindowManager!=null){              mWindowManager.removeView(mLockView);          }      }      public void setLockView(View v){          mLockView = v;      }  }  

更多相关文章

  1. Android8.0通知适配
  2. Android(安卓)fragment中如何对listview添加监听事件
  3. android隐藏以及显示软键盘以及不自动弹出键盘的方法
  4. ListView 实现像Android(安卓)Market那样 分页加载 滚动加载
  5. Android用Apache HttpClient 实现POST和Get请求
  6. Android(安卓)使用HttpURLConnection 实现多线程下载
  7. 使用Toast(android中的一种提醒方式) & 建立监听 --4
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. 【ArcGIS for Android】经纬度坐标、地图
  2. android Camera拍照 及 MediaRecorder录
  3. Android完美处理RecyclerView实现item条
  4. Android基础之intent传值的三种方法
  5. Android(安卓)通知栏
  6. android 之 Broadcast(广播) BroadcastRe
  7. 在一个app中唤醒拉起另一个app应用(DeepLi
  8. Android(安卓)补间动画使用记录
  9. Android(安卓)logcat命令使用
  10. Android(安卓)花里胡哨的加载Loading动画