禁用Android系统Home键

声明:资源来自https://github.com/shaobin0604/Android-HomeKey-Locker,可访问该地址直接下载,也可访问我的资源http://download.csdn.net/detail/youshenxuzuo/8575529下载,长期有效。


在项目开发中,有可能需要屏蔽Android系统虚拟按键 , 其中返回键相对容易禁用,以下两种办法都能解决:

@Override    
public boolean onKeyDown(int keyCode, KeyEvent event) {  
if(keyCode == KeyEvent.KEYCODE_BACK){      
return  true;
}  
return  super.onKeyDown(keyCode, event);     

} 
或者

@Override
public void onBackPressed() {
}

接下来讲解屏蔽home键的办法:

1、下载上述资源,解压文件;

2、将HomeKeyLocker.java文件拷贝到你的项目中;

3、

<style name="OverlayDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">false</item>
        <item name="android:backgroundDimEnabled">false</item>
    </style>
拷贝到你的styles.xml文件中;

4、将

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

复制到AndroidManifest.xml文件中;

5、在需要屏蔽的Activity文件中添加代码:

private HomeKeyLocker mHomeKeyLocker;

public void onCreate(Bundle paramBundle) {
<span style="white-space:pre">	</span>mHomeKeyLocker = new HomeKeyLocker();
<span style="white-space:pre">	</span>mHomeKeyLocker.lock(LoginActivity.this);
}

protected void onDestroy() {
<span style="white-space:pre">	</span>mHomeKeyLocker.unlock();
	mHomeKeyLocker = null;
	super.onDestroy();
}

以上5步可以实现禁用Home键。

实测可用设备:

Android 4.4.4

Samsung Tab4

  • Android 4.4.2
    • CM11 (Google Nexus S, Moto Defy)
  • Android 4.0.3
    • Moto XT910
    • Huawei C8812
  • Android 4.0.4
    • ZTE V889M
    • Android 2.3.5
      • HTC Desire S (Sense 3.0)
  • Android 2.3.5
    • HTC Desire S (Sense 3.0)
不可用设备

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。