android 屏蔽电源键,home键
来源:互联网 发布:mysql清空表数据 编辑:程序博客网 时间:2024/05/14 03:08
Android中屏蔽"电源键长按"、"Home键"、"Home键长按"这几个“按钮”的触发,都会产生一个Action == Intent.ACTION_CLOSE_SYSTEM_DIALOGS的通知
区分他们三个的不同事件的参数,就是随着Intent带过来的reason字符串,分别对应
"电源键长按"(globalscreen)、"Home键"(homekey)、"Home键长按"(recentapps)
说破了就这么简单,直接上代码了。
package com.jumpinus.test;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;public class MainActivity extends Activity {private MyBroadCastReceiver myBroadCastReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);myBroadCastReceiver = new MyBroadCastReceiver();}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);System.out.println("I'm coming, myBroadCastReceiver注册了!");registerReceiver(myBroadCastReceiver, intentFilter);}private class MyBroadCastReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {//你自己先把 reasons == homekey 和 长按homekey 排除,剩下的做下面的处理String reason = intent.getStringExtra("reason");if (intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){System.out.println("Intent.ACTION_CLOSE_SYSTEM_DIALOGS : " + intent.getStringExtra("reason"));if (intent.getExtras()!=null && intent.getExtras().getBoolean("myReason")){myBroadCastReceiver.abortBroadcast();}else if (reason != null){if (reason.equalsIgnoreCase("globalactions")){//屏蔽电源长按键的方法:Intent myIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);myIntent.putExtra("myReason", true);context.sendOrderedBroadcast(myIntent, null);System.out.println("电源 键被长按");}else if (reason.equalsIgnoreCase("homekey")){//屏蔽Home键的方法//在这里做一些你自己想要的操作,比如重新打开自己的锁屏程序界面,这样子就不会消失了System.out.println("Home 键被触发");}else if (reason.equalsIgnoreCase("recentapps")){//屏蔽Home键长按的方法System.out.println("Home 键被长按");}}}}}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();System.out.println("I get out, myBroadCastReceiver注销了!");unregisterReceiver(myBroadCastReceiver);}}
效果图:
0 0
- android 屏蔽电源键,home键
- Android中屏蔽 电源键长按、Home键、Home长按
- Android中屏蔽 电源键长按、Home键、Home长按
- Android HOME键屏蔽
- Android 屏蔽HOME键
- Android屏蔽home键
- android屏蔽home键
- Android屏蔽home键
- Android 屏蔽Home键
- android 屏蔽home键
- android 屏蔽home键
- Android屏蔽HOME键
- android屏蔽Home键
- android 屏蔽HOME键
- android home键屏蔽
- Android 屏蔽Home键
- Android 屏蔽home键
- 屏蔽 Home 键 (Android|)
- 使用SOCKET实现TCP/IP协议的通讯
- 虚拟机linux的ip和dns设置 【仅供参考】
- Java 初始化顺序
- VLFeat和Piotr’s Image & Video Matlab Toolbox
- mysql bat脚本控制
- android 屏蔽电源键,home键
- jquery中的方法
- 杂谈:中华英才裁员事件
- 陈怡暖:2015.5.11早间现货黄金白银操作建议
- 括号匹配问题
- Linux查看CPU和内存使用情况
- 小技巧:图片不存在的时候的容错处理
- 对偶问题
- Python中如何解决ImportError:No Module Named arcpy问题