android 4.0 禁用系统home键
2.2 禁用系统home键。这里不说了。
近期项目有一个需求,禁用系统的全部键。像menu, home, back.同一时候还要是想点击响应与view的弹出。
就是UI这部分要正常。
back键我们自己onKeyDown 禁用的好开心。
个人觉得最简单的写法请移步:
http://blog.csdn.net/yiding_he/article/details/38527813
这里关键说下4.0后禁用系统home键。
网上找了非常久,基本上都是不能用的。由于都是说由于系统安全原因。android系统把这个事件(home,menu)在框架层就给吸收掉了,并且根本没有分发到应用层。
The Menu key can't be disabled for security reasons, this key is handled by the framework and is never delivered to applications.
http://stackoverflow.com/questions/15459407/disable-home-button-in-android-4-0
看吧,老外的stack overflow上都说没办法。
就当我接近失望时。随便点进了一个搜索页中的某大神的github,https://github.com/shaobin0604/Android-HomeKey-Locker,随便下载试了下,居然work了。
更重要的是这个大神是偶们中国人。
太牛掰了。
膜拜。这里就不细说大神是怎么实现的了,秘诀是建立一个OverlayDialog, 给它设置了一些參数像FLAG_SHOW_WHEN_LOCKED,FLAG_NOT_TOUCH_MODAL等等。
有想研究的同学,请自行下载源代码学习。
这里仅仅说一下使用:
1.到https://github.com/shaobin0604/Android-HomeKey-Locker, 下载大神的代码。
2.HomeLockLib中的HomeKeyLocker.java放到自己的Util包下。
3.HomeLockLib中的styles中的OverlayDialog相关部分复制到自己的styles中。
4.在你自己的AndroidManifest中增加
<uses-permission
android:name="android.permission.SYSTEM_ALERT_WINDOW"
/>
5.在想要锁键的地方new HomeKeyLocker 对象。
private HomeKeyLocker mHomeKeyLocker;
mHomeKeyLocker = new HomeKeyLocker();
之后须要锁键使用:
mHomeKeyLocker.lock(mActivity.this);
解锁使用:
mHomeKeyLocker.unlock();
6.在自己的destroy方法中增加:
@Override
protected void onDestroy() {
super.onDestroy();
mHomeKeyLocker.unlock();
mHomeKeyLocker = null;
}
这样就能够开心的玩耍了。
android 4.0 禁用系统home键的更多相关文章
- android 4.0.4系统下实现apk的静默安装和启动
转 android 4.0.4系统下实现apk的静默安装和启动 分类: Android 2013-02-14 14:13 1762人阅读 评论(10) 收藏 举报 最近在android 4.0.4系统 ...
- 【转】android 5.0 64bit系统加载库文件失败问题浅析
原文网址:http://blog.csdn.net/andrewblog/article/details/43601303 最近公司的一个项目使用android 5.0 64 bit平台,相对以前版本 ...
- Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
一.写在前面 最近由于廖子尧忙于自己公司的事情和OkGo(一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理了诸多 ...
- 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
一.写在前面 最近由于廖子尧忙于自己公司的事情和 OkGo (一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护 ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理 ...
- Android 5.0以下系统支持TLS 1.1/1.2协议版本
一.背景 项目中,客户端与服务端之间普遍使用Https协议通信,突然接到测试同事反馈Android5.0以下手机上,App测试服使用出现问题,出现SSL handshake aborted错误信息,但 ...
- 关于 Android 5.0 原生系统网络图标上的感叹号问题解决方法
解决方案 adb shell settings put global captive_portal_server g.cn 参考 关于 android 5.0 网络图标上的感叹号及其解决办法
- android 7.0 调用系统相机崩溃的解决方案(非谷歌官方推荐)
解决方案: 1.(推荐)7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限. 不用修改原有代码,在Application的oncreate方法中:(或者直接放在调用相机的activ ...
- 使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板
Ref: http://www.iplaysoft.com/android-v4-ics-for-virtualbox.html 随着 Android 手机的各种软件应用越来越多,很多没有购买的朋友都 ...
- Android 5.0以上获取系统运行进程信息
在Android 5.0以上系统,调用getRunningAppProcesses 方法返回的列表为空,这是因为谷歌考虑到安全原因,已经把这个方法移除掉了, 那以后要获取系统运行的后台进程这个方法用不 ...
随机推荐
- 汕头市队赛 SRM1X T1
木之本樱 背景 “西瓜是可以种在树上的!”——木之本樱 描述 空地上,一排排的西瓜树拔地而起. 魔法世界里,空地是无限大的.所有的树排成了n条直线,每条直线也是向左右两端无限延伸的. 由于自己姓木(之 ...
- Gradle for Android(二)全局设置、自定义BuildConfig
全局设置 如果有很多项目,可以设置全局来统一管理版本号或依赖库,根目录下build.gradle下: ext { compileSdkVersion = 23 buildToolsVersion = ...
- jQuery选择器总结(重要)
jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个 ...
- python requests高级耍法
昨天,我们更多的讨论了request的基础API,让我们对它有了基础的认知.学会上一课程,我们已经能写点基本的爬虫了.但是还不够,因为,很多站点是需要登录的,在站点的各个请求之间,是需要保持回话状态的 ...
- 条件变量(Condition Variable)详解
条件变量(Condtion Variable)是在多线程程序中用来实现“等待->唤醒”逻辑常用的方法.举个简单的例子,应用程序A中包含两个线程t1和t2.t1需要在bool变量test_cond ...
- 并发策略-CAS算法
对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略.它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼.如果多个线程同时访问临界区资源,就宁可牺牲 ...
- [BZOJ1193][HNOI2006]马步距离 大范围贪心小范围爆搜
1193: [HNOI2006]马步距离 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1988 Solved: 905[Submit][Statu ...
- 计蒜客 28317.Growling Gears-一元二次方程的顶点公式 (Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 G)
G. Growling Gears 传送门 此题为签到题,直接中学的数学知识点,一元二次方程的顶点公式(-b/2*a,(4*a*c-b*b)/4*a):直接就可以得到结果. 代码: #include& ...
- 华农oj Problem L: CreatorX背英语【STL】
Problem L: CreatorX背英语 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 53 Solved: 36 [Submit][Status][ ...
- linux 服务器信息查看
写项目总结报告,需要统计需要系统的配合 1.# uname -a (Linux查看版本当前操作系统内核信息) Linux localhost.localdomain 2.4.20-8 #1 Thu ...