阻止冰淇淋三明治和果冻豆的主页按钮

Ron*_*hta 9 android home-button

我正在开发锁屏,我想要在冰淇淋三明治和果冻豆中禁用主页按钮,我可以使用以下方法在Android 2.2,2.3中阻止它

  @Override
public void onAttachedToWindow() {
    // TODO Auto-generate method stub
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}
Run Code Online (Sandbox Code Playgroud)

也尝试了这个

   getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
Run Code Online (Sandbox Code Playgroud)

在这里,我也没有通过onPauseMethod或者获取事件信息onKeyDown

但是这些方法在ICS中对我没有用,如果有任何方法可以取代它,那么让我知道

Swa*_*yam 14

发布ICS即Android 4+,出于安全原因删除了HomeButton的覆盖,以便在应用程序变成恶意软件时启用用户退出.

另外,不让用户离开应用程序是不太好的做法.但是,由于你正在制作一个锁屏应用程序,你可以做的是将活动声明为一个启动器,这样当按下HomeButton时它只会重新启动你的应用程序并保持在那里(用户只会注意到一点点闪烁在屏幕上).

编辑#1:这是另一种解决方法,更适合您的需求.

编辑#2:刚刚遇到这个.没有测试过.但看起来很有希望.不确定它是否可行,但你可以尝试一下.


Ily*_*man 9

您可以尝试一些事情:

  • 您可以将活动设置为单个顶部,并在onPause()调用方法时使用clear to top标志重新开始,这将阻止主页按钮并打开其他活动.

  • 收听BOOT_COMPLETED广播以开始您的活动 - 这将保护您免受将电池从设备中取出以重新启动它的用户的攻击.

  • 添加Alarmmanager,如果您的应用程序处于活动状态,则会每秒测试一次,然后启动它 - 这将保护您免受那些如何设法关闭您的应用程序的用户(可能使用外部工具).

这样做,没有人能够退出您的应用程序.