Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detect programmatically if an Android device is able to do storage encryption

I am developing an Android App that starts the process of encrypting data on the device.

I am detecting the encryption status with this code :

int encrypted = 0;
device_policy_manager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
encrypted = device_policy_manager.getStorageEncryptionStatus();
Log.d("TAG", "encryption status : " + encrypted);
}

On some devices, the encryption process starts and fails. Usually those devices don't have the "Encryption" option available in the Settings>Security menu (Android 3.x and Android 4.x).

Is there a way to detect programmatically if a device is able to do storage encryption ?

Thanks in adavance.

like image 345
mehdi.r Avatar asked Jun 30 '16 03:06

mehdi.r


1 Answers

Devices which do not support encryption should return ENCRYPTION_STATUS_UNSUPPORTED when calling getStorageEncryptionStatus().

Hope this helps.

like image 141
Marek Pola Avatar answered Sep 19 '22 17:09

Marek Pola