监听home键及发送ontouch事件方法


// 比如说在button的onclick事件中,要发送一个ontouch的up事件,做法如下:
public void clickBtn(View v){
dispatchTouchEvent.(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 240, 400, 0));
}
// 期中该btn的onclick事件是在xml里面注册的
<Button android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text="发送onTouch的 UP事件"
android:onClick="clickBtn" />


// 截获Home事件做法
// 1.加权限禁止Home键
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
// 2.复写 onAttachedToWindow()
@Override
public void onAttachedToWindow()
{
// TODO Auto-generated method stub
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
// 3.监听onKeyDown事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if(KeyEvent.KEYCODE_HOME==keyCode)
android.os.Process.killProcess(android.os.Process.myPid());
return super.onKeyDown(keyCode, event);
}



// android4.0以后屏蔽home键通过 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 是不能用的
// 如果是mtk平台的话,可以在setContentView之前getWindow().setFlags(WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED, WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED);
//其他平台的需要修改源码,可以先按照第二步的操作,然后修改frameworks/base/services/java/com/android/server/wm/WindowManagerService.java和frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java



//打开activity时,需要解锁或者替换系统锁屏,只需要添加两个flag
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
setContentView(R.layout.main);



// 禁止状态栏下拉
StatusBarManager sbm = (StatusBarManager)this.getSystemService(Context.STATUS_BAR_SERVICE);
sbm.disable((StatusBarManager.DISABLE_EXPAND));
//需要权限以及系统签名
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"></uses-permission>
<uses-permission android:name="android.permission.STATUS_BAR"></uses-permission>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值