繁体   English   中英

如何防止在Android和iOS中使用HOME按钮?

[英]how to prevent use of HOME button in android and ios?

我正在开发一个应用程序,在该应用程序中,用户应该只能使用一个应用程序,而他应该不能使用HOME按钮(该应用程序)来切换应用程序。 应该只在用户按下关闭按钮时关闭。。我设法覆盖了返回按钮,但不知道如何禁用HOME按钮。

如果应用程序在后台运行,则无法在android中禁用“主页”按钮,因为如果可能的话,某些应用程序总是会禁用“主页”按钮。 因此,这就是开发人员在后台运行应用程序时无法禁用主页按钮的原因。 但是在“活动”中,您可以拦截“主页”按钮。

在“活动”中,您可以在android中禁用Home键。 它仅适用于Android3.x。

@Override
public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

TGMCians是正确的。

Android不允许活动及其服务完全在您的设备上单独运行。

使用“覆盖”,可以在活动处于前台时捕获按钮的单击(主页,后退和菜单)。 如果一项活动/服务在后台具有完全控制权,则您也将无法切换到传入的短信,电子邮件,电话等。

我个人认为同时覆盖主页和后退按钮是危险的,如果活动在某个时间点挂起,除非重新启动手机,否则您将无法退出应用程序。

就个人而言,我确实会覆盖返回键,以退出或返回主屏幕事件,但请保留主页按钮。

永远不可能在iOS上使用代码。

HOME按钮的一种用法是用于紧急情况。

任何房屋,公寓……它们都有应急方法,例如应急门(出口),玻璃破碎器(斧头,蝙蝠等); 它可以挽救生命。 同样,在Android / iOS手机上,“ HOME”按钮可以挽救用户的生命(很好)。 如果“ HOME”按钮失效,则认为电话已失效,并且需要立即重启以刷新。 该按钮就是为此目的而设计的,因此开发人员无法弄乱所有内容。

就个人而言,我对Android / iOS框架团队以及在HOME按钮上想到这种情况的人都表示感谢。 它节省了我很多时间。 我建议您应该考虑并考虑最糟糕的情况,如果您的应用程序中的“主页”按钮无法正常工作; 例如,某个应用无法正常运行,禁用了HOME,那么如何返回HOME屏幕,如何切换到其他应用?

TGMCians提供的代码不适用于4.0+。

如果您正在使用Android框架,例如构建ROM,为制造商构建框架,...用KEY_HOME grep源代码并跟踪内部深度以查找其工作方式并禁用它。

实际上,可以使用以下方法来阻止主页按钮:

  1. 使用安全漏洞,至少在旧的android版本上使用。 这是在某些更衣柜应用中完成的。 我认为即使在较新的android版本上,有些仍然可以使用,但这是有风险的,并且在某些设备上可能有问题。 我知道“ widgetLocker”和“图片密码锁屏”会尝试这些漏洞。 我不确定他们现在与他们合作得如何。 成为锁屏的最佳解决方案是#2。

  2. 将您的应用设置为启动器应用,该应用将处理“主页”按钮(用户必须进行确认)。 这样的应用程序的一个例子是“ MagicLocker”,实际上任何启动器应用程序...

  3. 使用有根设备。 我不知道该怎么做,但我认为这很有可能。

  4. 并不是一种完全阻止的方法,但是您可以将应用全屏显示在顶部(使用TYPE_SYSTEM_ALERT窗口布局类型),因此不会捕获“主页”按钮,但用户不会看到应用背后的情况。 缺点是您的应用程序不会捕获任何其他按钮,因为它并不是真正的前台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM