gpt4 book ai didi

android - 防止主页按钮在锁定屏幕时进入主屏幕

转载 作者:搜寻专家 更新时间:2023-11-01 08:48:46 25 4
gpt4 key购买 nike

我正在尝试为 android 制作锁屏。每当我按下主页按钮时,它都会让我回到主屏幕。我尝试了 google play 中的各种应用程序。除非您解锁屏幕,否则 Go Locker 应用不会让您转到主屏幕。我不希望我的应用程序返回主屏幕,除非我滑动屏幕将其解锁。反正有做这个功能吗?已经 3 天了,我找不到任何相关信息。

非常感谢。

最佳答案

这是一些代码:

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

使用此方法,主页按钮将停止在此 Activity 中工作(仅此 Activity )。然后你只需重新实现,因为它是一个普通的按钮事件。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
boolean res = super.onKeyDown(keyCode, event);
switch (keyCode) {
case KeyEvent.KEYCODE_HOME: {
// Your Home button logic;
return false;
}
return res;
}

警告:onAttachedToWindow() 覆盖实际上有效,但如果所有按钮都被禁用,锁定用户,唯一的方法可能是非常危险的退出正在取出电池的应用程序,因此正确编码,处理所有情况。

遇到这种覆盖主页按钮点击的方法,希望它对你有用:

在 AndroidManifest.xml 中

<activity
...
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
....
</intent-filter>
</activity>

您需要 launchMode="singleTask" 以便将 Intent 传递给已经运行的应用程序,而不是创建新实例。

在 Activity 中:

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (Intent.ACTION_MAIN.equals(intent.getAction())) {
//your code goes here.
}
}

您没有获得关键事件。

关于android - 防止主页按钮在锁定屏幕时进入主屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25692944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com