Android如何屏蔽home键和recent键
来源:互联网 发布:淘宝买家说微信转账 编辑:程序博客网 时间:2024/06/08 02:21
最近在做一个项目的时候,进入一个 Activity后需要暂时屏蔽掉home键和recent键(back键可以在onKeyDown里面处理),网上找了半天,都是针对旧版本android的方法,android5.0以后就不能生效了。
看了半天的SDK和资料,发现有一种方法可以暂时屏蔽掉home键和recent键,如果有办法获取到高级的系统权限,还可以正在的屏蔽掉。废话不多说,直接上代码:
其实代码就一句话:startLockTask,整段代码如下:
package utils.bobo.com.boboutils.App;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import utils.bobo.com.boboutils.R;public class ScreenPinningActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_screen_pinning); } @Override public void onResume(){ super.onResume(); this.startLockTask(); } @Override public boolean onKeyDown(int keyCode,KeyEvent event){ if(keyCode==KeyEvent.KEYCODE_BACK) return true; return super.onKeyDown(keyCode, event); }}
启动后,会出现如下图的提示,用户点击知道了,home键和recent键就被屏蔽掉了,只有长按back键才能解除这个状态:
再来说说高级的接口,这个高级的接口需要android.permission.STATUS_BAR的permission,这个permission定义如下:
<permission android:name="android.permission.STATUS_BAR"
android:protectionLevel="signature|privileged" />
这个定义决定了你的apk必须是platform签名或者预制在system/priv-app下,
所以这个方法对普通的开发者无效,但是如果你是做rom的,就可以采用这个方法。代码也很简单,这边就不贴完整代码了
mStatusBarManager = (StatusBarManager) getApplicationContext() .getSystemService(Context.STATUS_BAR_SERVICE);
mStatusBarManager.disable(StatusBarManager.DISABLE_HOME | StatusBarManager.DISABLE_RECENT | StatusBarManager.DISABLE_EXPAND);
在activity 退出的时候要执行下
mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
恢复home键和recent键
其实还有一种比较流氓的方法:
就是不用activity实现,而是添加一个TYPE_SYSTEM_ALERT的view到window上,这个网上的代码也挺多的,这边贴小部分代码,有兴趣的同学自己再去百度下
WindowManager wm = (WindowManager)getApplicationContext().getSystemService(WINDOW_SERVICE);WindowManager.LayoutParams params = new WindowManager.LayoutParams();params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT | WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;params.flags = LayoutParams.FLAG_NOT_FOCUSABLE;params.width = WindowManager.LayoutParams.FILL_PARENT;params.height = WindowManager.LayoutParams.FILL_PARENT;params.format = PixelFormat.TRANSPARENT;params.gravity=Gravity.LEFT|Gravity.TOP;params.x = 0;params.y = 0;wm.addView(mView, params);
源代码可以从 https://github.com/bobohuang1985/android-utils-api 下载,
欢迎大家提出意见。大家可以通过QQ群,或者微信公众号交流:
阅读全文
0 0
- Android如何屏蔽home键和recent键
- Android 如何屏蔽Home键
- Android 如何屏蔽Home键
- android 4.0如何屏蔽和重写home键
- 如何屏蔽Home键
- Android监听Home键和Recent Apps键
- android如何屏蔽掉home键
- android如何屏蔽掉home键
- android如何屏蔽掉home键
- Android 4.4.源码 如何屏蔽Home键
- Android HOME键屏蔽
- Android 屏蔽HOME键
- Android屏蔽home键
- android屏蔽home键
- Android屏蔽home键
- Android 屏蔽Home键
- android 屏蔽home键
- android 屏蔽home键
- 刻意练习
- 微信JS-SDK选取手机照片上传并下载保存至自己的服务器
- 超好用的一个JUQUEY分页器
- 百度地图使用 自定义标注的图标
- 产品上线流程
- Android如何屏蔽home键和recent键
- iOS中使用Fastlane实现自动化打包和发布
- 关于RSS订阅功能的实现与初步认识
- linux驱动程序设计中的内存与I/O访问
- 移动端web开发
- svn is already locked解决方案
- Base64编码与解码原理和使用及复杂数据的存储
- Android性能优化工具Memory Monitor
- python爬虫