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键的更多相关文章

  1. android 4.0.4系统下实现apk的静默安装和启动

    转 android 4.0.4系统下实现apk的静默安装和启动 分类: Android 2013-02-14 14:13 1762人阅读 评论(10) 收藏 举报 最近在android 4.0.4系统 ...

  2. 【转】android 5.0 64bit系统加载库文件失败问题浅析

    原文网址:http://blog.csdn.net/andrewblog/article/details/43601303 最近公司的一个项目使用android 5.0 64 bit平台,相对以前版本 ...

  3. Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException

    一.写在前面 最近由于廖子尧忙于自己公司的事情和OkGo(一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理了诸多 ...

  4. 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException

    一.写在前面 最近由于廖子尧忙于自己公司的事情和 OkGo (一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护 ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理 ...

  5. Android 5.0以下系统支持TLS 1.1/1.2协议版本

    一.背景 项目中,客户端与服务端之间普遍使用Https协议通信,突然接到测试同事反馈Android5.0以下手机上,App测试服使用出现问题,出现SSL handshake aborted错误信息,但 ...

  6. 关于 Android 5.0 原生系统网络图标上的感叹号问题解决方法

    解决方案 adb shell settings put global captive_portal_server g.cn 参考 关于 android 5.0 网络图标上的感叹号及其解决办法

  7. android 7.0 调用系统相机崩溃的解决方案(非谷歌官方推荐)

    解决方案: 1.(推荐)7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限. 不用修改原有代码,在Application的oncreate方法中:(或者直接放在调用相机的activ ...

  8. 使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板

    Ref: http://www.iplaysoft.com/android-v4-ics-for-virtualbox.html 随着 Android 手机的各种软件应用越来越多,很多没有购买的朋友都 ...

  9. Android 5.0以上获取系统运行进程信息

    在Android 5.0以上系统,调用getRunningAppProcesses 方法返回的列表为空,这是因为谷歌考虑到安全原因,已经把这个方法移除掉了, 那以后要获取系统运行的后台进程这个方法用不 ...

随机推荐

  1. 汕头市队赛 SRM1X T1

    木之本樱 背景 “西瓜是可以种在树上的!”——木之本樱 描述 空地上,一排排的西瓜树拔地而起. 魔法世界里,空地是无限大的.所有的树排成了n条直线,每条直线也是向左右两端无限延伸的. 由于自己姓木(之 ...

  2. Gradle for Android(二)全局设置、自定义BuildConfig

    全局设置 如果有很多项目,可以设置全局来统一管理版本号或依赖库,根目录下build.gradle下: ext { compileSdkVersion = 23 buildToolsVersion = ...

  3. jQuery选择器总结(重要)

    jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个 ...

  4. python requests高级耍法

    昨天,我们更多的讨论了request的基础API,让我们对它有了基础的认知.学会上一课程,我们已经能写点基本的爬虫了.但是还不够,因为,很多站点是需要登录的,在站点的各个请求之间,是需要保持回话状态的 ...

  5. 条件变量(Condition Variable)详解

    条件变量(Condtion Variable)是在多线程程序中用来实现“等待->唤醒”逻辑常用的方法.举个简单的例子,应用程序A中包含两个线程t1和t2.t1需要在bool变量test_cond ...

  6. 并发策略-CAS算法

    对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略.它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼.如果多个线程同时访问临界区资源,就宁可牺牲 ...

  7. [BZOJ1193][HNOI2006]马步距离 大范围贪心小范围爆搜

    1193: [HNOI2006]马步距离 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1988  Solved: 905[Submit][Statu ...

  8. 计蒜客 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& ...

  9. 华农oj Problem L: CreatorX背英语【STL】

    Problem L: CreatorX背英语 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 53 Solved: 36 [Submit][Status][ ...

  10. linux 服务器信息查看

    写项目总结报告,需要统计需要系统的配合 1.# uname -a   (Linux查看版本当前操作系统内核信息) Linux localhost.localdomain 2.4.20-8 #1 Thu ...