gpt4 book ai didi

android - 禁用 KeyGaurd 后无法重新启用它

转载 作者:行者123 更新时间:2023-11-29 01:55:37 24 4
gpt4 key购买 nike

我写了下面的代码来使用切换按钮切换我的 Android 手机的 KeyGaurd。但我面临着一种奇怪的行为。

  • 它成功地禁用了 keygaurd 但是。不重新启用。

     btnToggleLock.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {

    if (btnToggleLock.isChecked()) {

    toast.cancel();
    toast.setText("Unlocked");
    toast.show();

    Log.i("Unlocked", "If");

    KeyguardManager myKeyGuard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);

    KeyguardLock myLock = myKeyGuard
    .newKeyguardLock(KEYGUARD_SERVICE);
    myLock.disableKeyguard();


    } else {

    toast.cancel();
    toast.setText("Locked");
    toast.show();

    KeyguardManager myKeyGuard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardLock myLock = myKeyGuard
    .newKeyguardLock(KEYGUARD_SERVICE);
    myLock.reenableKeyguard();

    Log.i("Locked", "else");

    }

    }
    });
  • 它成功地禁用了 keygaurd 但是。不重新启用。

  • 我测试了它,控件遍历 ifelse

我也在使用 android 2.2.1 motoralla milestone

最佳答案

这里的问题是每次执行“if”语句时您都在创建一个新的锁 (KeyGuardLock)。您可以在第一次创建锁时禁用它,但您必须“重新启用”您首先禁用的锁,您不能创建新锁。

解决方案是在 onClickListener 之外进行锁定。即从“if”语句中取出以下代码并在设置 onClickListener 之前声明它:-

KeyguardManager myKeyGuard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock myLock = myKeyGuard
.newKeyguardLock(KEYGUARD_SERVICE);

关于android - 禁用 KeyGaurd 后无法重新启用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338400/

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