Я пытаюсь определить статус шифрования хранилища моего устройства Android из своего приложения. Следуя рекомендациям соответствующей страницы разработчика Android , вот мой код:
DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
int encryptionStatus = mDPM.getStorageEncryptionStatus();
if (DEBUG) Log.v(TAG, "checkSecuritySettingsSufficient: encryptionStatus=" + encryptionStatus);
Вот в чем проблема: когда я запускаю этот код на устройстве (я пробовал его на Motorola Droid Maxx под управлением Android 4.4.4 и Nexus 7 под управлением Android 5.0.2), которое я ранее зашифровал , DevicePolicyManager.getStorageEncryptionStatus()
будет всегда возвращать значение 1, то есть ENCRYPTION_STATUS_INACTIVE
.
Поэтому Android сообщает, что устройство не зашифровано, несмотря на то, что файловая система определенно зашифрована (я проверил ее статус на странице Settings > Security
).
Эта функция сломана? Кажется, об этом не упоминается ни в SO, ни в других веб-источниках. Это наводит меня на мысль, что я что-то не так делаю в отношении DevicePolicyManager
.
ОБНОВЛЕНИЕ После повторного выполнения шагов шифрования на устройстве Motorola DevicePolicyManager.getStorageEncryptionStatus()
возвращает правильное значение, но на Nexus 7 по-прежнему не работает.