2012-05-19 32 views
2

我正在开发一个安全应用程序,当手机丢失或被盗时,手机屏幕会自动锁定,如果盗用者试图通过随机输入密码登录手机,手机将记录到3次失败尝试。是否可以禁用所有物理电话按钮?

3次尝试失败后,当前布局将变为布局中没有任何内容的黑色布局,并且我将为此布局设置计时器,在此布局期间,除非计时器已过期,否则没有任何键可以唤醒此布局。我已经成功实现了计时器,但是当我按下手机上的后退按钮时,布局返回到登录布局。我怎样才能禁用所有的电话按钮?可能吗?由于

+1

但Android已经有一个安全机制... –

+6

如果任何第三方应用程序可以通过禁用物理按钮来“阻塞”手机,这不是一个相当大的缺陷吗? –

+2

有才华的开发人员不会写这样的内容,因为有才华的开发人员会意识到,任何人都可以轻松过去尝试创建的内容,只需在将设备重新启动到安全模式后删除应用程序即可。有才华的开发人员认识到,这种安全需要成为固件的一部分,与现有的设备管理API一起工作。 – CommonsWare

回答

1

您可以使用此代码禁用后退按钮

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

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

使用同样禁止home键

@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

+0

是的,它工作到3.2。 但这里有一个解决方法 http://stackoverflow.com/questions/10077675/disable-home-button-in-android-ics-4-0 –

+0

@NikNexAndrX不是一个真正的解决方法,因为它需要更改_home_屏幕,很少有用户愿意这样做。 –

3

不要这样做。

您试图实施的“黑客”可以简单地通过在将设备重新启动到安全模式后删除您的应用程序来绕过。禁用硬按钮不会做任何事情来防止这种情况。

相关问题