有一种方法可以使用(有时),但它并不是100%可靠的,因此除非您可以约束/测试硬件并且这也可能产生意外后果,否则我不会依赖它用于关键应用程序。
例如,据报道,在三星设备上,该方法导致设备带出锁定屏幕,因此如果您尝试此操作,请告诉我是否获得任何类似的结果,它什么都不做或者有效果:-)
我可以说,我已经测试过所有具有硬主页按钮的HTC手机(大约6个)上的Android 2.2 / 2.3上运行,没有检查任何其他OS / Phone组合。
无论如何,在您的活动中...
@Override
public void onAttachedToWindow()
{
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
是的,似乎很琐碎,实际上它只是在说“嘿,我是一个键盘保护应用程序,所以忽略主页键”,不同的手机行为不同。
关于“应该”与“能够”的冗长说明
如果主页键停止工作并且用户想要使用它,一些用户会非常生气。我发现使用这个的唯一有效理由是在为一个机构建立的数据采集应用程序上,他们不希望意外停止(应用程序被推到后面)当他们在使用它。
我意识到有些人从用户体验角度认为根本不应该允许这样做(我忽略了安全问题,如果你是一个像样的恶意软件作者,有更好的方法来搞砸用户而不会引起他们的注意)。
虽然我倾向于认为对于大多数应用程序来说,这将非常让人讨厌,但在某些情况下,如上所述,这将是有益的。最终,设计师和他们的用户将通过不支付或再也不使用它来决定什么是正确和错误的。
就我个人而言,我认为谷歌应该重新考虑这个主页键的问题,即使手机设计师(如帖子所述)也在找到控制所有键时有益而不是“邪恶”或不好的用户体验的时候。
它会被滥用吗?当然会,但是市场力量会解决这个问题,相信我。
如果谷歌仍然觉得有必要,将其变成一个让人不安的顶级权限也会施加适当的压力。
好了,发泄结束...