Android DevicePolicyManager
用于管理在设备上实施策略的公共接口。可以用来禁用多个系统应用,例如系统相机、指纹解锁、面部解锁、生物识别解锁等。这个类的大多数客户端必须和系统被注册为设备管理员。此外,设别管理员可能被注册为个人资料或设备所有者。一个给定的方法可以访问所有设备管理员除非那个方法的文档指定它被限制为设备或个人资料所有者。任何调用 api 的应用只能将其拥有的设备管理员组件作为参数传递。否则,会抛出安全异常 SecurityException。
需要 PackageManager#FEATURE_DEVICE_ADMIN 功能,可以使用 PackageManager.hasSystemFeature(String) 进行检测。
@SystemService(Context.DEVICE_POLICY_SERVICE) // 可见其是 DevicePolicyService 的管理者
@RequiresFeature(PackageManager.FEATURE_DEVICE_ADMIN)
public class DevicePolicyManager {
...
// 默认状态,不做任何禁用
public static final int KEYGUARD_DISABLE_FEATURES_NONE = 0;
// 禁用锁屏相机
public static final int KEYGUARD_DISABLE_SECURE_CAMERA = 1 << 1;
// 禁用指纹解锁
public static final int KEYGUARD_DISABLE_FINGERPRINT = 1 << 5;
// 禁用人脸解锁
public static final int KEYGUARD_DISABLE_FACE = 1 << 7;
// 禁