Я пытаюсь определить статус шифрования хранилища моего устройства Android из моего приложения. В соответствии с рекомендациями соответствующего Android Developer page, вот мой код:Является ли это явлением DevicePolicyManager.getStorageEncryptionStatus()?
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
.
UPDATE После запуска через шаги шифрования снова с устройством Motorola, DevicePolicyManager.getStorageEncryptionStatus()
возвращает правильное значение, но это еще не удается на Nexus 7.
Да, очевидно, это так. В нашем опыте getStorageEncryptionStatus возвращает ENCRYPTION_STATUS_INACTIVE, если только * оба * шифрования не включены, и требуется PIN-код. Это кажется неправильным, но с этим мы должны работать. –
С шифрованием ON, но без Pin для запуска nexus 6 возвращается ENCRYPTION_STATUS_ACTIVE_DEFAULT_KEY, но Galaxy S7 с Android 6 возвращает ENCRYPTION_STATUS_ACTIVE – David