2016-06-08 14 views
2

我目前正面臨着一些Android設備的麻煩bug。我正在檢查KeyguardManager以查看是否需要禁用音頻(我希望在遊戲未激活或屏幕鎖定等情況下禁用音頻)isKeyguardLocked vs isDeviceLocked

我一直在使用isDeviceLocked方法來查看如果用戶有權訪問或沒有。

但現在我發現了一個持續報告`isDeviceLocked'== true的設備。

的Android文檔說

布爾isDeviceLocked()

返回該設備是否當前被鎖定,需要輸入PIN,圖案或密碼來解鎖。

布爾isKeyguardLocked()

返回鍵盤鎖當前是否鎖定。

isDeviceLocked和isKeyguardLocked之間的區別是什麼,除了它們被添加到不同的SDK版本?

回答

-2

這是在這裏下面的鏈接 What's the difference between isDeviceLocked and isKeyguardSecure in android's KeyguardManager?

重新發布解決方案的重複問題:

public boolean isDeviceLocked() 

此方法採用了鎖屏的當前UI狀態考慮在內。

所以,如果一個安全的屏幕鎖定已設置,它會違背isKeyguardSecure()回報,如果假:

用戶解鎖了鎖屏,並使用該設備 智能鎖功能(設置 - >安全 - > Smart Lock)允許設備在沒有進一步身份驗證的情況下解鎖

public boolean isKeyguardSecure() 

此方法不考慮Lockscreen的當前UI狀態。

因此,如果設置了安全屏幕鎖,無論Lockscreen是否被用戶解鎖,或者Smart Lock是否允許解鎖而無需進一步身份驗證,它都將始終返回true。

+1

這個答案是錯誤的。 UI狀態差異在'''isDeviceLocked()/ isDeviceSecure()''和''isKeyguardLocked()/ isKeyguardSecure()'''之間。這個問題是關於「KeyguardManager」上下文中「設備」和「鍵盤保護」之間的區別,並且仍然沒有答案。 – pandasauce

+1

不是一個答案,而是一個猜測:我猜想有些應用程序即使在鎖定鍵盤鎖的情況下也能正常工作,例如相機(您可以拍照,但無法查看圖片)。如果鍵盤鎖仍處於鎖定狀態,這將允許應用程序以受限制的功能運行。 – Habba

相關問題