2011-10-24 17 views

Trả lời

12

Hai phương pháp

  1. Kiểm tra programatically - API 16+

https://gist.github.com/doridori/54c32c66ef4f4e34300f

Lưu ý rằng bạn không cần phải kiểm tra các mặt mở khóa như đòi hỏi rằng một pin/pass dự phòng là bộ.

  1. Device quản lý Chính sách

cũng có thể nhìn vào chính sách Quản trị thiết bị cho phép hạn chế về cách ứng dụng được thiết lập liên quan đến an ninh bao gồm cả pin/pass thiết lập hạn chế

Ngoài ra, đây là các loại khóa bạn muốn kiểm tra nếu sử dụng mã hóa Keystore được mã hóa. Kiểm tra here để biết thêm thông tin.

+2

Có vẻ như bạn có thể kiểm tra tất cả ba loại khóa thông qua Keyguard ngay bây giờ "LOCK_PATTERN_ENABLED - Hằng số này không được chấp nhận trong Cấp độ 23. Sử dụng KeyguardManager để xác định cấp độ bảo mật và trạng thái của trình bảo vệ phím. Truy cập cài đặt này từ một ứng dụng nhắm mục tiêu M hoặc sau đó sẽ ném ra một SecurityException. " http://developer.android.com/reference/android/provider/Settings.Secure.html – Jakob

+1

Quyền của bạn. [KeyGuardManager.isKeyGuardSecure()] (https://developer.android.com/reference/android/app/KeyguardManager.html#isKeyguardSecure()) hiện trả về _ "true nếu PIN, mẫu hoặc mật khẩu được đặt hoặc thẻ SIM bị khóa. "_ kể từ 23 – Dori

4

Bạn có thể sử dụng lớp Settings.Secure để truy vấn thông tin về bảo mật tại chỗ trên thiết bị Android. Ví dụ, để xem nếu người dùng có một mô hình được khóa bạn muốn làm:

ContentResolver cr = getContentResolver(); 
int lockPatternEnable = 
    Settings.Secure.getInt(cr, Settings.Secure.LOCK_PATTERN_ENABLED); 

lockPatternEnable sau đó sẽ có một 0 nếu nó không được kích hoạt và một 1 nếu nó được kích hoạt.

+1

cảm ơn bạn, nhưng về pin hoặc mật khẩu thì sao? – Shatazone

+0

Sẽ không chỉ cung cấp cho bạn nếu bật kiểu khóa nhưng không được bật nếu Pin được bật. Tôi có cả Pin và Mẫu trên điện thoại của mình và 2 trạng thái khác nhau của nó. – JPM

+1

Hmmm. Tôi sẽ phải nghiên cứu thêm. Bây giờ có vẻ như chúng ta chỉ biết cách kiểm tra xem Lock patter có được kích hoạt hay không. –