android 4.0 屏蔽home键实现
16lz
2022-04-22
最近研究锁屏,按照常规的方法,常规方法如下
但是这个方法到了4.0的系统上就失效了,按home照样会返回桌面。apktool了几个锁屏的软件之后发现其实现方法,即用WindowManager的addview方法将view加到窗口上,加上的时候将view的layoutparamas的type设为LayoutParams.TYPE_SYSTEM_ERROR,这个值sdk的解释为
如果直接这样用会报错,还要在AndroidManifest.xml里面加上权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>,ok上完整代码,封装了一个类,其中Lock和hide方法实现锁屏和解锁。
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; } }
更多相关文章
- Android8.0通知适配
- Android(安卓)fragment中如何对listview添加监听事件
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- ListView 实现像Android(安卓)Market那样 分页加载 滚动加载
- Android用Apache HttpClient 实现POST和Get请求
- Android(安卓)使用HttpURLConnection 实现多线程下载
- 使用Toast(android中的一种提醒方式) & 建立监听 --4
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用