Android中屏蔽"电源键长按"、"Home键"
发布时间:2020-12-14 23:26:31 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 这几个“按键”的触发,都会产生一个 Action ==?Intent.ACTION_CLOSE_SYSTEM_DIALOGS 的通知区分他们三个的不同事件的参数,就是随着? Intent? 带过来
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
这几个“按键”的触发,都会产生一个 Action ==?Intent.ACTION_CLOSE_SYSTEM_DIALOGS 的通知区分他们三个的不同事件的参数,就是随着?
Intent?带过来的?
reason?字符串,分别对应:
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; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); myBroadCastReceiver = new MyBroadCastReceiver(); } @Override protected void onResume() { // TODO Auto-generated method stub super.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{ @Override public 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 键被长按"); } } } } } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); System.out.println("I get out,myBroadCastReceiver注销了!"); unregisterReceiver(myBroadCastReceiver); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读