Android– 捕获抑制Home和EndCall按钮事件?

Android– 捕获抑制Home和EndCall按钮事件?,第1张

概述如果您曾试图在Android上编写一个更衣室应用程序,请确保您遇到此问题:booleanmBackPressed=false;@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(event.getAction()==KeyEvent.ACTION_DOWN){switch(keyCode){caseKeyE

如果您曾试图在Android上编写一个更衣室应用程序,请确保您遇到此问题:

boolean mBackpressed = false;@OverrIDepublic boolean onKeyDown(int keyCode, KeyEvent event) {    if (event.getAction() == KeyEvent.ACTION_DOWN) {        switch (keyCode) {        case KeyEvent.KEYCODE_BACK:            mBackpressed = true;            break;        case KeyEvent.KEYCODE_MENU:            if (mBackpressed)                unLock();            break;        default:            mBackpressed = false;            showMessage();            break;        }    }    return true;}private voID showMessage() {    Toast.makeText(getBaseContext(), "Back + Menu", Toast.LENGTH_SHORT)            .show();}private voID unLock() {    this.setResult(Activity.RESulT_OK);    this.finish();}

似乎onKeyDown过滤掉所有键,但“后退”和“菜单”……
嗯,这不是真的!主页按钮仍将为您带来主屏幕,结束通话按钮将运行原生的Locker应用程序!

那里的研究员也声称这是一个问题:
How to listen from ENDCALL button
problem With Home Back screen button
Supressing Key presses in Activity, especially in Options Menu
Issue 4202: Feature Suggestion: permission for intercepting KEYCODE_CALL

你知道阻止这些按钮的任何解决方法吗?
唯一的方法(经常) – write in C?

解决方法:

你可以capture the Back key quite easily.

我认为你不能拦截Home和End Call按钮.如果可以,这将允许恶意应用程序阻止用户离开它,从而有效地劫持手机.

您的应用程序的一个选项是使用android.intent.category.HOME Intent编写替换主屏幕.

总结

以上是内存溢出为你收集整理的Android – 捕获/抑制Home和EndCall按钮事件?全部内容,希望文章能够帮你解决Android – 捕获/抑制Home和EndCall按钮事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存