我正在尝试从我的应用程序中确定我的Android设备的存储加密状态。按照相关Android开发人员页面的建议,下面是我的代码:
DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
int encryptionStatus = mDPM.getStorageEncryptionStatus();
if (DEBUG) Log.v(TAG, "checkSecuritySettingsSufficient: encryptionStatus=" + encryptionStatus);
问题是:当我在设备上运行这段代码时(我在运行Android4.4.4的摩托罗拉Droid和运行Android5.0.2的Nexus 7上试用过)(我以前加密了),DevicePolicyManager.getStorageEncryptionStatus()
will 总是返回值1,即ENCRYPTION_STATUS_INACTIVE
。
因此,Android报告说该设备没有加密,尽管文件系统确实是加密的(我从Settings > Security
页面查看了它的状态)。
这个功能坏了吗?似乎没有提到这一点,在这样或在其他网站来源。这使我相信,对于DevicePolicyManager
,我没有正确地做一些事情。
UPDATE在再次使用摩托罗拉设备运行加密步骤之后,DevicePolicyManager.getStorageEncryptionStatus()
返回了正确的值,但它在Nexus 7上仍然失败。
发布于 2015-06-15 15:29:40
我只是遇到了同样的问题,并发现它正在发生,因为设备启用了磁盘加密,但不需要在启动时输入密码。更改密码,并强制require在启动选项为true使DevicePolicyManager.getStorageEncryptionStatus()
正确返回ENCRYPTION_STATUS_ACTIVE
。
https://stackoverflow.com/questions/28468544
复制相似问题