如何在不使用TYPE_KEYGUARD的情况下禁用Home键?

Mic*_*ans 5 android android-manifest android-layout android-notifications

我创建一个锁屏应用程序,我需要禁用一个主页按钮,所以如果该手机被盗,该手机无法访问..我的锁屏是一个全屏活动..我使用此代码禁用主页按钮,但它给了我一些bug.这是代码:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    }

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

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

该代码给了我一些像通知/状态区域的错误,即使我在全屏模式下的活动仍然可以访问,如果我关闭我的显示并再次打开它..错误是这样的:

第一次申请开始:(仍然没问题)

在此输入图像描述

从电源按钮关闭屏幕并再次打开后: 在此输入图像描述

主要问题是在锁屏上..当仍然可以访问通知区域时,锁屏无用..

任何想法如何解决这个?请帮忙..

当我按下结束键按钮时,我也遇到了同样的问题.

Eri*_*hen 4

对于我的手机,TYPE_KEYGUARD 似乎覆盖了全屏,没有标题栏主题。通知栏始终存在。尝试这个:

@Override
public void onAttachedToWindow()
{  
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);     
    super.onAttachedToWindow();  
}
Run Code Online (Sandbox Code Playgroud)

让您的视图拉伸整个屏幕,它将覆盖通知区域。您的通知区域可能仍然是可点击的(不可见的),但我相信如果您捕获视图上的所有关键事件,它不应该传播到通知栏。