2015-05-04 41 views
6

Poniżej jest fragmentem http://developer.android.com/reference/android/app/KeyguardManager.htmlJaka jest różnica między isDeviceLocked i isKeyguardSecure w KeyguardManager systemu Android?

public boolean isDeviceLocked()

Returns czy urządzenie jest aktualnie zablokowane i wymaga PIN, wzór lub hasło, aby odblokować. Zwraca wartość true, jeśli odblokowanie urządzenia wymaga obecnie kodu PIN, wzoru lub hasła.

public boolean isKeyguardSecure()

Return czy blokada klawiatury wymaga podania hasła w celu odblokowania. Zwraca wartość true, jeśli blokada klawiatury jest bezpieczna.

Jaka jest różnica między isDeviceLocked a isKeyguardSecure?

+2

Cóż, jeśli masz hasło, obie metody zwracają "true". Jeśli masz kod PIN lub wzorzec, po prostu 'isDeviceLocked' zwraca' true', a jeśli nie masz blokady, oba zwracają 'false'. Przypuszczam, że 'isKeyguardSecure' ma swoją funkcję, ponieważ PIN i wzór można ominąć łatwiej. – ByteHamster

+1

Dlaczego porównać 'isDeviceLocked()' z 'isKeyguardSecure()'? Zawieszeniem dla 'isDeviceLocked()' jest 'isKeyguardLocked()', * interfejs klawisza * jest starszy i bierze również PIN karty SIM. – for3st

Odpowiedz

7

public boolean isDeviceLocked()

Ta metoda zajmuje aktualny stan UI LockScreen pod uwagę.

Więc jeśli bezpieczne Blokada ekranu został zainstalowany, to będzie sprzeczne isKeyguardSecure() powrotnej false jeżeli:

  • Użytkownik został odblokowany lockscreen i korzystania z urządzenia
  • Smart blokady funkcja (Ustawienia -> Zabezpieczenia -> Inteligentna blokada) umożliwia odblokowanie urządzenia bez dalszego uwierzytelniania.

public boolean isKeyguardSecure ()

Ta metoda NIE uwzględnia aktualnego stanu interfejsu blokady ekranu.

Jeśli więc została skonfigurowana bezpieczna blokada ekranu, zawsze będzie ona zwracana true, niezależnie od tego, czy blokada została odblokowana przez użytkownika, czy też Smart Lock umożliwia odblokowanie bez dalszego uwierzytelniania.

Nie udało mi się odtworzyć zachowania zgłoszonego przez Bajtogamera.