首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冰激凌三明治和软糖豆块首页按钮

冰激凌三明治和软糖豆块首页按钮
EN

Stack Overflow用户
提问于 2012-09-15 17:31:14
回答 3查看 8.3K关注 0票数 9

我正在开发Lock screen,我想在冰激凌三明治和Jelly bean中禁用Home按钮,我可以使用android 2.2,2.3中的以下方法阻止它

代码语言:javascript
复制
  @Override
public void onAttachedToWindow() {
    // TODO Auto-generate method stub
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

我也试过这个

代码语言:javascript
复制
   getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

在这里,我也没有通过onPause方法或onKeyDown获取事件信息

但是这些方法在ICS中不起作用,Jelly bean如果有可以替代它的方法,请让我知道

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-25 00:03:02

Post ICS即安卓4+,出于安全原因,对HomeButton的覆盖已被移除,以便在应用程序被证明是恶意软件的情况下允许用户退出。

此外,不让用户离开应用程序也不是一个好的做法。但是,由于您正在制作一个锁屏应用程序,您可以做的是将该活动声明为Launcher,这样当按下HomeButton时,它将简单地重新启动您的应用程序并保留在那里(用户只会注意到屏幕上的轻微闪烁)。

编辑#1 :这里是another workaround,更适合你的需求。

编辑#2 :刚刚发现this.还没有测试过它。但看起来很有希望。我不确定它是否能工作,但你可以试一试。

票数 14
EN

Stack Overflow用户

发布于 2012-09-27 22:46:55

您可以尝试以下几种方法:

  • 你可以设置你的活动单页,并在调用onPause()方法时使用clear to top标志重新启动它,这将阻止Home键和打开other activities.
  • Listen to BOOT_COMPLETED broadcast来开始你的活动-这将保护你免受用户为了重启它而取出设备的电池。
  • 添加Alarmmanager,它将每秒测试一次你的应用是否还活着,如果它不是,然后启动它-这将保护你免受用户的一些管理关闭你的应用程序(可能是通过外部工具)。

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

票数 9
EN

Stack Overflow用户

发布于 2013-12-30 21:44:53

我认为从Android应用程序中检测和/或拦截主页按钮是不可能的。这内置于系统中,以防止无法退出的恶意应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12436190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档