Android中屏蔽电源键长按、Home键、Home键长按
发布时间:2020-05-24 20:24:05 所属栏目:Java 来源:互联网
导读:Android中屏蔽电源键长按、Home键、Home键长按
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 这几个“按键”的触发,都会产生一个 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);
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
