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方法中增加:

@Overrideprotected void onDestroy() {super.onDestroy();mHomeKeyLocker.unlock();mHomeKeyLocker = null;}

这样就能够开心的玩耍了。

转载于:https://www.cnblogs.com/yfceshi/p/7258463.html

android 4.0 禁用系统home键相关推荐

  1. tiny4412开发板实现uboot引导启动android 5.0.2系统

    1目的 实现uboot引导启动android 5.0.2系统. 2 现有环境 友善之臂tiny 4412开发板,superboot引导启动android5.0.2系统,内核版本为linux3.0.8. ...

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

    转自http://www.linuxidc.com/Linux/2013-02/79403.htm 未亲测 最近在Android 4.0.4系统下实现apk的静默安装和启动的功能,这里和大家分享一下, ...

  3. android 7原生动态壁纸,手机里都是定制OS?谷歌Android 7.0原生系统壁纸邀你来尝鲜!...

    原标题:手机里都是定制OS?谷歌Android 7.0原生系统壁纸邀你来尝鲜! 安卓系统的碎片化一直是被人们所诟病,苹果手机IOS系统升级的速度和占比一直都非常高,而安卓手机却相比都非常差,三星,华为 ...

  4. 小米刷 android o,一代神机!五年前的小米2刷入Android 8.0原生系统

    五年前的小米手机2竟然能刷Android 8.0原生系统.做个比较,2012年推出的iPhone 5已经不能升级最新的iOS11了. 小米2是小米于2012年8月发布的一款产品,距今已经超过5年零三个 ...

  5. Android 9.0 显示系统导航栏(左/右/底部)

    Android 9.0 显示系统导航栏(左/右/底部) 显示系统导航栏 一般有:HOME  BACK  最近应用列表 等组成. 先看下效果图: 显示在底部(最常见的做法): 显示在右边(平板): (请 ...

  6. android 8.0 调系统拍照_Android通知栏微技巧,8.0系统中通知栏的适配

    为什么要进行通知栏适配? 不得不说,通知栏真是一个让人又爱又恨的东西. 通知栏是Android系统原创的一个功能,虽说乔布斯一直认为Android系统是彻彻底底抄袭iOS的一个产品,但是通知栏确实是A ...

  7. Android 12.0 禁用和启用拨打电话功能实现

    1.项目需求 在12.0的产品定制化开发中,在一些wifi产品的产品开发中,对于系统4g部分的功能需要裁剪 比如拨打电话 接听电话 短信功能等这部分 需要禁用系统对应的功能,接下来就来初步分析下系统中 ...

  8. android4.0 菜单,Android 4.0.4系统曝光 增新Power菜单

    [IT168 资讯]尽管Android4.0.3已经推出很久了,但是目前为止,三星Galaxy Nexus运行的仍旧是Android4.0.2的系统更新,与4.0.3相比,4.0.2版本不仅应用界面不 ...

  9. Android 8.0以上系统应用如何保活

    最近在做一个埋点的sdk,由于埋点是分批上传的,不是每次都上传,所以会有个进程保活的机制,这也是自研推送的实现技术之一:如何保证Android进程的存活. 对于Android来说,保活主要有以下一些方 ...

最新文章

  1. iOS开发之 - 好玩的富文本
  2. Dom4J的基本使用
  3. linux 下如何安装php,详解在Linux下如何安装配置PHP
  4. 根据输入的出生日期计算到今天之间的天数
  5. Mina学习之搭建项目工程目录
  6. 一个微积分不等式---积分不等式,微分证明法
  7. android studio 创建项目失败原因Failed to create
  8. w讠ndows的中文读音,广西壮族自治区
  9. 整篇文章翻译软件对接谷歌等各大翻译平台
  10. 用C++写一个简单的表白小程序
  11. 面试季,覆盖70%-80%的面经基础题(java及安卓)-------java篇
  12. 如何免费申请博客 用WordPress建设网站
  13. 工具说明书 - FTDI芯片的USB转UART串口线
  14. js 数字不足位数补0
  15. flashfxp搜索服务器文件夹,FlashFXP 命令行参数
  16. 拼多多秒杀活动的谣言
  17. 树莓派Pico与ADXL345三轴加速度传感器SPI总线接口技术及MicroPython编程
  18. mysql 查询和修改组合_别崩溃,来看这个MySQL全面瓦解:子查询和组合查询
  19. windows10拦截广告设置
  20. C++ Primer Plus读书笔记

热门文章

  1. WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载)
  2. FAST算法学习笔记
  3. adb指令通过uid控制_图文教程:PC利用adb工具通过CMD命令控制手机动作(备忘笔记)...
  4. Java接口自动化之TestNG单元测试框架(一)
  5. APP自动化测试系列之3种元素定位工具
  6. APP测试之使用ADB可能遇到的错误及解决办法
  7. Uniswap V3 24小时交易量达12.9亿美元
  8. 内河港口首次实现区块链无纸化进口放货
  9. 加拿大上市公司Vinergy更新投资政策 将涉及比特币数字货币等投资
  10. 一文读懂kafka(附加52道常见面试题)