0

我正在尝试从我的应用程序中确定我的 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 上仍然失败。

4

1 回答 1

5

我刚刚遇到了同样的问题,发现它正在发生,因为设备启用了磁盘加密,但不需要在启动时输入密码。更改密码,并强制启动时需要 PIN 选项为 true,从而DevicePolicyManager.getStorageEncryptionStatus()正确返回ENCRYPTION_STATUS_ACTIVE

于 2015-06-15T15:29:40.563 回答