当用户点击Android手机的主页按钮时,限制主屏幕启动

时间:2011-10-24 05:54:09

标签: android

我在手机上运行我的自定义应用程序,它应该全天候运行,所以有一个要求限制启动Android手机的主屏幕,当用户点击手机的主页按钮意味着我的应用程序运行在电话和用户点击主页按钮它不应导航到手机的主屏幕。 它应该始终在手机上显示我的自定义应用程序。

那么有人可以帮我实现这个功能吗?请分享一些示例代码,以便我实施。

此致 皮克斯

4 个答案:

答案 0 :(得分:2)

我们无法覆盖主页按钮功能。主页按钮是为操作系统保留的

答案 1 :(得分:2)

如果你真的想这样做,你可以制作一个自定义启动器(主屏幕)。有关入门的一些提示概述here,但这不是一个简短而简单的调整。

还需要您的用户将其启动器设置为您的自定义启动器,然后将其设置为默认启动器等。如果您对设备进行100%配置控制,这将非常合理。

但是,如果您确实采用了这种方式,那么您就可以处理所有按下家庭的情况,并且可以轻松启动您的24/7应用程序。

答案 2 :(得分:1)

试试这个:

@Override
public void onAttachedToWindow() {
    // TODO Auto-generated method stub
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
    super.onAttachedToWindow();
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_BACK:
            return true;
        case KeyEvent.KEYCODE_HOME:
            return true;
        }
    } else if (event.getAction() == KeyEvent.ACTION_UP) {
        switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_BACK:
            if (!event.isCanceled()) {
                // Do BACK behavior.
            }
            return true;
        case KeyEvent.KEYCODE_HOME:
            if (!event.isCanceled()) {
                // Do HOME behavior.
            }
            return true;
        default:
            return true;


        }
    }

    return super.dispatchKeyEvent(event);
}

答案 3 :(得分:0)

如果要锁定主页按钮。你可以借助以下代码来完成这项工作。但它只适用于单一活动。

@覆盖

  public void onAttachedToWindow()

    {  
           this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
           super.onAttachedToWindow();  
    }