禁用Android ICS中的主页按钮(4.0)

时间:2012-04-09 18:12:32

标签: android android-3.0-honeycomb android-4.0-ice-cream-sandwich keyguard

我正在为一家公司制作专有应用程序,该应用程序永远不会将其发布到Ice Cream Sandwich(Android 4.0)中的Android Market(或我现在认为的Play商店)。

我需要禁用Home,这样用户就无法恶意卸载软件或删除应用捕获的数据。这个最新版本是第一个用4.0编写的,以前的版本是用2.2和3.2编写的。

为了禁用2.2中的Home按钮,我将应用程序关联为主页替换,因此该按钮刚刚重新打开了应用程序,但我无法再使用此方法,因为这有点阻止我们对应用程序进行更新(我们不想让用户选择重新选择Home默认值,因为这会导致数据删除。

我在3.2中禁用Home按钮的代码是:

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

,在onCreate下:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();

但是当我在3.2平板电脑上运行相同的代码时,它在我的4.0平板电脑上无效。

我想知道是否有一个新的API或方法可以达到与我目前在3.2实现中相同的效果。

感谢您的帮助或指导。

亚当

2 个答案:

答案 0 :(得分:6)

解决方法怎么样..

编写实现主屏幕的第二个应用程序,当按下主屏幕按钮时,此应用程序将到达前台。从这个应用程序,您需要将主应用程序推回到前台。唯一的问题是您的主屏幕应用程序必须永远不需要更新,但您应该能够自由更新主应用程序,而无需选项卡要求设置主启动器。

希望有道理..

答案 1 :(得分:0)

否....你不能至少使用Android4.0的主页按钮覆盖..使用“hotveryspicy”的解决方案并且,如果你想回应HOME按钮,请实现主屏幕。