4.0以上系统锁屏类应用禁用home键
来源:互联网 发布:开封王大昌茶庄淘宝 编辑:程序博客网 时间:2024/06/01 09:34
最近做了一款锁屏类应用,但是现在都是4.0以上系统,home键的禁用不能和返回键禁用那样处理,网上找了好多答案,大多数是让改sdk,但是那不是第三方应用能实现的,又去github上找了几个demo,最后找到了能实现类似功能的app,网址列在下面
https://github.com/tanhuopeng/classLock
他的大概思路是,把你锁屏的界面添加到WindowManager的顶层,代码如下
private WindowManager wm;private ViewGroup mViewContent;
在oncreate里面:
mViewContent = (ViewGroup) View.inflate(this, R.layout.main, null);wm = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);generateLayoutParams(wm, mViewContent,getResources().getDisplayMetrics().widthPixels, getResources().getDisplayMetrics().heightPixels);
generateLayoutParams方法如下
public static WindowManager.LayoutParams generateLayoutParams(WindowManager wm, ViewGroup viewgroup, int width, int height){ WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams(); wmParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR; wmParams.format = PixelFormat.OPAQUE; wmParams.flags = WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; wmParams.width = width; wmParams.height = height; wm.addView(viewgroup, wmParams); return wmParams;}
然后在layout:main里面又一个button
Button button = (Button)mViewContent.findViewById(R.id.button);注意(button)后面是mViewContent,因为这个button是在mViewContent里面的,而这个activity的layout可以不是main,两个可以不同,切记。
然后设置button的点击方法,里面的内容很简单,只是把activity,finish掉就ok,然后重写onDestroy:
@Overrideprotected void onDestroy() { super.onDestroy(); if (wm != null) { wm.removeView(mViewContent); }}即,在该activity销毁的时候,移除我们加在WindowManager里的mViewContent,这样就实现了类似禁用home键的功能。
至于监听锁屏状态打开activity等功能,网上很多,在这里不赘述。
注意:国内小米手机,默认是关闭悬浮窗的,所以这种方法会失效,解决办法就是提醒用户打开该应用悬浮窗权限。
转载请注明出处
阅读全文
0 0
- 4.0以上系统锁屏类应用禁用home键
- android 4.0 禁用系统home键
- android 4.0.3 禁用系统home键
- android 4.0 禁用系统home键
- 禁用Android系统Home键
- android 4.0 禁用系统home键(续)
- android 4.0 禁用系统home键!亲测可用!
- Android4.4 home键禁用
- flyme5禁用系统应用
- Android 屏蔽Home键(2.2、2.3/4.0以上)
- android 4.0以上屏蔽HOME按键
- 禁用home 4.0+ ,亲测可用
- 禁用BAMBOOK S1的home键
- android 4.0以上屏蔽home键,返回键等键所在一栏两种方法。
- android 禁用home键盘
- android 禁用home键盘
- ubuntu9以上禁用IPV6
- 在4.0以上系统中应用出现2.3版本的系统UI
- C++boost库之variant使用
- mfc中图片控件上加载PNG图片
- springboot使用问题集合
- sql备忘
- linux 编译选项加 g++ -fsanitize=address
- 4.0以上系统锁屏类应用禁用home键
- libusb移植
- SQL删除重复数据只保留一条
- PAT甲级 1009
- 关于JSON对象的key
- iOS开发之为什么更新UI都要放在主线程中
- xgboost学习
- php、nginx、mysql的开机启动
- java23三种设计模式之-创建型模式