gpt4 book ai didi

android - FLAG_DISMISS_KEYGUARD 不再适用于 Android Lollipop?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:13 24 4
gpt4 key购买 nike

正如标题所说,我惊讶地发现 FLAG_DISMISS_KEYGUARD 标志在 API 21 (Lollipop) 上不再起作用。

在 kitkat 中,设置此标志会关闭不安全的键盘锁。

那么这是功能还是错误?解决方法是什么?

通过 PowerManager 类禁用 keyguard 是一个选项,但它不能像 dismissal 样式那样工作。可以吗?

最佳答案

首先:这是一个错误。

其次,是否有解决方法?是的。

因为我被这个问题绊倒了连谷歌都不知道这个问题,我对如何解决这个问题进行了大量研究。这很容易。该错误大概是键盘锁注册了两个次android实习生。

诀窍是开始正手跑前 Activity ,听在广播屏幕上,解除键盘保护并开始您真正的 Intent Activity 。

代码:

public class KeyGuardDismissActivity extends Activity {

private ScreenOnReceiver receiver;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LOG.d("Start keyguard dismisser!");
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
startActivity(new SomeOtherActivityIntent(getApplicationContext()));
finish();
return;
}
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
receiver = new ScreenOnReceiver();
registerReceiver(receiver, receiver.getFilter());
}

private void dismissingKeyguard() {
LOG.d("Dismissing keyguard!");
SomeOtherActivityIntent yourRealActivity = new SomeOtherActivityIntent(getApplicationContext(), this);
startActivity(yourRealActivity );
if (receiver != null) {
unregisterReceiver(receiver);
}
finish();
}

private class ScreenOnReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
LOG.d("Screen on, yay!");
dismissingKeyguard();
}

public IntentFilter getFilter() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
return filter;
}
}
}

在您的实际 Activity 中,您也必须添加关闭标志!

问候。

关于android - FLAG_DISMISS_KEYGUARD 不再适用于 Android Lollipop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27948419/

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