是否有某种方法可以禁用主页键? (与modding股票应用程序相关)

时间:2011-07-09 03:01:42

标签: android

我只是在搜索它,似乎大多数人都说如果不让你的应用程序成为备用启动器,就无法禁用主页键。我很好奇是否允许像三星这样的公司使用它来禁用它。

例如,我有一个Samsung Infuse,当我打开相机应用程序并按下电源按钮时,它会锁定所有硬件按钮。主页键,后退键,一切。在锁定后按下它们时,它们根本不做任何事情。您可以再次按下电源按钮解锁它们,您可以随时再次锁定它们。

我很好奇,因为我正试图在手机上修改相机应用程序以使用电源按钮拍照。我已经使用apk管理器反编译应用程序并修改了Camera.smali以使用电源按钮拍摄照片,但它仍然锁定了主页键和所有其他键。我试着在那里搜索与锁定任何按钮有关的任何内容,但我找不到任何东西。

有谁知道他们如何能够锁定/禁用主页密钥?基于我从搜索中发现的内容,除非您将应用程序用作备用启动器,否则无法禁用它,但显然三星(或谷歌?我不确定这是否是Samsung / TouchWiz应用程序或股票Android一个)能够在他们的相机应用程序中执行它而不会使应用程序充当启动器。

2 个答案:

答案 0 :(得分:3)

像三星这样的公司修改了股票平台来做各种有问题的事情。 :) Stock Android不允许应用程序禁用主页密钥。希望在制造商做的任何修改中,他们只允许内置应用程序禁用主页键。对于第三方应用而言,这是一个重要的行为和可能的安全问题。

答案 1 :(得分:0)

有一种方法可行(有时)但它不是100%可靠的,所以我不会在生产应用程序中依赖它来做任何关键的事情,除非你可以约束/测试硬件,这也可能产生意想不到的后果。

例如据报道,在三星设备上,该方法会导致设备显示锁定屏幕,所以如果您尝试这个,请告诉我,如果您得到任何类型的相似结果,它什么都不做,或工作: - )

我可以说它适用于所有带有硬主页按钮的HTC手机,我测试过(大约6个)Android 2.2 / 2.3没有检查任何其他操作系统/手机组合。

无论如何你的活动......

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

是的,似乎是微不足道的,基本上它只是说嘿我是一个关键的守卫应用程序所以忽略主键,再次不同的手机表现不同。

关于应该与CAN的长期说明

如果homekey停止工作并且想要使用它,某些用户将真正进行p / off。我发现使用它的唯一有效理由是在一个数据收集应用程序上,该应用程序是为一个不希望在使用时意外停止(app推到后面)的代理商而构建的。

我意识到有些人并不认为从UX的角度来看应该允许这一点(我忽略了安全问题,如果你是一个体面的恶意软件编写者,有更好的方法可以在不提醒用户的情况下弄乱用户)

虽然我倾向于同意这对大多数应用程序来说真的很烦人,但在某些情况下如上所述它有益。最后,设计师及其用户将通过不支付或从不再使用它来决定是非。

就我个人而言,我认为谷歌应该重新考虑整个家庭关键的事情,即使是电话设计师(如海报所述)也会发现控制所有关键是有益的,而不是“邪恶的”#34 ;或糟糕的用户体验

它会被滥用吗?当然,那么市场力量会照顾到我相信我的东​​西。

如果Google仍然认为需要,那么在面对可怕的许可时,如果谷歌仍然认为有必要,那么它也会施加适当的压力。

Ok Rant Off ...