为什么Keyguard没有重新启用?

时间:2014-12-03 09:05:21

标签: android keyguard

我有一个用于进行背景视频录制的服务,在此期间我禁用了键盘锁。当我想停止录制时,我停止服务并调用OnDestroy()。

我可以在跟踪中看到ReenableKeyguard()被调用。然而,在我强行停止"强制停止之前,钥匙卫士仍然是残疾人士。启动服务的主机应用程序。

在调用ReenableKeyguard()时,可能导致Keyguard停用的原因是什么?

这是破坏服务并重新启用键盘锁的代码。 (它是C#/ Xamarin,但与Java基本相同)

    public override void OnDestroy()
    {
        Tracer.Trace("BackgroundVideoRecorder::OnDestroy();");
        base.OnDestroy();

        try
        {
            camera.Reconnect();
            mediaRecorder.Stop();
            mediaRecorder.Reset();

            camera.StopPreview();
            mediaRecorder.Release();

            camera.Release();
            camera = null;

            if (Common.KeyGuardLocker != null)
            {
                Tracer.Trace("BackgroundVideoRecorder::OnDestroy() - ReenableKeyguard()");
                Common.KeyGuardLocker.ReenableKeyguard();
            }

            windowManager.RemoveView(surfaceView);
        }
        catch (Exception ex)
        {
            Tracer.Trace(ex);
        }
    }

1 个答案:

答案 0 :(得分:1)

I have the exact same problem and the reason was that i had only permissions to Disable keyguard and not the ones to re-enable it.

android.permission.DISABLE_KEYGUARD android.permission.ENABLE_KEYGUARD