2015-02-12 2 views
0

Я пытаюсь определить статус шифрования хранилища моего устройства 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.

ответ

5

Я просто столкнулся с этим же вопросом и выяснил его происходило потому, что на устройстве было включено шифрование диска, но при запуске не требуется вводить пароль. Изменение кода доступа и принудительное требование PIN-кода при стартовой опции должно быть выполнено верно DevicePolicyManager.getStorageEncryptionStatus() правильно вернуть ENCRYPTION_STATUS_ACTIVE.

+0

Да, очевидно, это так. В нашем опыте getStorageEncryptionStatus возвращает ENCRYPTION_STATUS_INACTIVE, если только * оба * шифрования не включены, и требуется PIN-код. Это кажется неправильным, но с этим мы должны работать. –

+1

С шифрованием ON, но без Pin для запуска nexus 6 возвращается ENCRYPTION_STATUS_ACTIVE_DEFAULT_KEY, но Galaxy S7 с Android 6 возвращает ENCRYPTION_STATUS_ACTIVE – David

Смежные вопросы