2012-04-09 51 views
8

我正在为一家公司开发专有应用程序,它绝不会将它发布到冰淇淋三明治(Android 4.0)中的Android Market(或我现在猜测的Play商店)。在Android ICS中禁用主页按钮(4.0)

我需要禁用首页,以便用户不能恶意卸载软件或删除应用程序捕获的数据。这个最新版本是第一个用4.0编写的,以前的版本是用2.2和3.2编写的。

为了禁用2.2中的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或4.0的方法可以达到与我目前在3.2实现中一样的效果。

感谢您的任何帮助或方向。

亚当

+0

您的应用程序的行为与恶意软件的不同之处在于它远离用户控制设备。 Android 4.0+旨在防止发生这种情况。 – Dubs 2012-09-27 14:18:45

回答

6

怎么样的解决方法..

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

希望有道理..

+0

你的解释确实有意义,而且完美。从我的主要应用程序到家庭劫机者只有一点点闪烁......但这是切换应用程序的预期。开始时,我将劫持应用程序移到了后面,这有助于减少一些闪烁。 – adamacdo 2012-04-16 18:34:07

+0

用户仍然可以取消选择这个应用程序 – 2012-05-20 01:47:27

+0

我也需要相同类型的场景,但是我们可以使用eclipse DDMS退出应用程序,并且长按主页按钮可以启用任务管理器。 有没有办法可以禁用长按主页按钮? – DAS 2012-11-08 09:33:34

0

没有....你不能改写的Android4.0 home键ATLEAST ..使用“hotveryspicy”的解决方案,如果你想回应的HOME按钮,实现一主屏幕。

+0

我无法将应用程序计为主屏幕,因为当我们更新应用程序时,用户将有能力选择股票Home作为启动器,这将允许删除敏感数据......这是最重要的事情我需要避免。 – adamacdo 2012-04-09 19:16:25