2015-05-04 13 views
6

Dưới đây là trích từ http://developer.android.com/reference/android/app/KeyguardManager.htmlSự khác nhau giữa isDeviceLocked và isKeyguardSecure trong KeyguardManager của Android là gì?

public boolean isDeviceLocked()

Returns cho dù thiết bị hiện đã bị khóa và đòi hỏi một mã PIN, hình hoặc mật khẩu để mở khóa. Trả về true nếu mở khóa thiết bị hiện yêu cầu mã PIN, hình mở khóa hoặc mật khẩu.

công isKeyguardSecure boolean()

Return liệu bảo vệ phím yêu cầu mật khẩu để mở khóa. Trả về true nếu phím bảo vệ an toàn.

Sự khác nhau giữa isDeviceLockedisKeyguardSecure là gì?

+2

Vâng, nếu bạn có mật khẩu, cả hai phương thức đều trả về 'true'. Nếu bạn có mã PIN hoặc mẫu, chỉ 'isDeviceLocked' trả về' true' và nếu bạn không có khóa, cả hai đều trả về 'false'. Tôi đoán 'isKeyguardSecure' có chức năng của nó vì PIN và mẫu có thể được bỏ qua dễ dàng hơn. – ByteHamster

+1

Tại sao so sánh 'isDeviceLocked()' với 'isKeyguardSecure()'? Mặt dây để 'isDeviceLocked()' là 'isKeyguardLocked()', phím bảo vệ * api cũ hơn và cũng dùng SIM Pin vào tài khoản. – for3st

Trả lời

7

public boolean isDeviceLocked()

phương pháp này có trạng thái UI hiện tại của Lockscreen vào tài khoản.

Vì vậy, nếu một Lock Screen an toàn đã được thiết lập, nó sẽ trái với isKeyguardSecure() trở false nếu:

  • Người dùng đã mở khóa Lockscreen và đang sử dụng các thiết bị
  • Các Khóa thông minh tính năng (Cài đặt -> Bảo mật -> Khóa thông minh) cho phép thiết bị được mở khóa mà không cần xác thực thêm

công khai boolean isKeyguardSecure ()

Phương pháp này KHÔNG đưa trạng thái giao diện người dùng hiện tại của màn hình khóa vào tài khoản.

Vì vậy, nếu Khóa màn hình an toàn đã được thiết lập, nó sẽ luôn trả về true, bất kể nếu Khóa màn hình đã được mở khóa bởi người dùng hoặc nếu Smart Lock cho phép mở khóa mà không cần xác thực thêm.

Tôi không thể tạo lại hành vi do ByteHamster btw báo cáo.

Các vấn đề liên quan