是否可以禁用所有物理手机按钮?

3
我正在开发一款安全应用程序,当手机丢失或被盗时,手机屏幕会自动锁定。如果窃贼尝试随机输入密码登录手机,手机将记录直到3次失败为止。
在3次失败之后,当前布局将更改为黑色布局,布局内没有任何内容,并且我将为此布局设置计时器,在此布局期间,除非计时器已过期,否则任何按键都无法唤醒此布局。我已成功实现了计时器,但是当我按下手机上的返回按钮时,布局会返回到登录布局。如何禁用所有手机按键?这可能吗?谢谢

1
但安卓已经有一个安全机制了... - Oliver Charlesworth
6
如果任何第三方应用程序都可以通过禁用物理按钮来“砖化”手机,那不是一个相当大的缺陷吗? - Alexis Pigeon
2
有才华的开发者不会写出这样的代码,因为他们知道任何人都可以轻松地通过在设备安全模式下重新启动后删除您的应用程序来绕过您所创建的内容。有才华的开发者意识到这种安全性需要成为固件的一部分,并与现有的设备管理员API协同工作。 - CommonsWare
@CommonsWare 感谢上天,手机小偷很少是有才华的开发者。 - RyanfaeScotland
2个回答

3

不要这么做。

你想要实现的“黑科技”可以被轻松绕过,只需将设备重新启动到安全模式并删除你的应用程序即可。禁用硬按键对此毫无影响。


1
您可以使用以下代码禁用“返回按钮”:

@Override
    public void onBackPressed() { //disable back button in this activity
        return;
    }

http://developer.android.com/reference/android/app/Activity.html#onBackPressed()

也可以使用以下方法禁用主页按钮

@Override
    public void onAttachedToWindow() { //disable home button in this activity
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }

http://developer.android.com/reference/android/app/Activity.html#onAttachedToWindow()


2
幸运的是,您所描述的HOME按钮黑客攻击在Android 4.0之后已经不再有效。 - CommonsWare
是的,它可以在3.2版本之前使用。 但是这里有一个解决方法 https://dev59.com/XGLVa4cB1Zd3GeqPw34t - Nik NexAndrX
@NikNexAndrX 这并不是一个解决方法,因为它需要改变“主屏幕”,而很少有用户愿意这样做。 - Kristopher Micinski
@CommonsWare 先生 - 为什么谷歌不采取措施对那些不符合Android设计准则和开发准则的应用程序进行处理? - Rat-a-tat-a-tat Ratatouille

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接