我正在尝试从我的应用程序中确定我的 Android 设备的存储加密状态。按照相关Android Developer page的建议,这是我的代码:
DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
int encryptionStatus = mDPM.getStorageEncryptionStatus();
if (DEBUG) Log.v(TAG, "checkSecuritySettingsSufficient: encryptionStatus=" + encryptionStatus);
问题来了:当我在之前加密的设备上运行此代码时(我在运行 Android 4.4.4 的摩托罗拉 Droid Maxx 和运行 Android 5.0.2 的 Nexus 7 上尝试过),DevicePolicyManager.getStorageEncryptionStatus()
将始终返回一个值1,即ENCRYPTION_STATUS_INACTIVE
。
因此,Android 报告该设备未加密,尽管文件系统确实已加密(我从Settings > Security
页面检查了它的状态)。
这个功能坏了吗?SO或其他网络资源上似乎没有提到这一点。这让我相信我没有正确地做某事DevicePolicyManager
。
更新使用摩托罗拉设备再次运行加密步骤后,DevicePolicyManager.getStorageEncryptionStatus()
返回正确的值,但在 Nexus 7 上仍然失败。