我想從我的應用程序中確定我的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);
這裏的麻煩:當我在設備上運行的代碼(我已經試過了在摩托羅拉Droid Maxx的運行Android 4.4.4和運行Android 5.0.2的Nexus 7)這是我以前加密的,DevicePolicyManager.getStorageEncryptionStatus()
將總是返回值1,即ENCRYPTION_STATUS_INACTIVE
。
因此,儘管文件系統是絕對加密的(我從Settings > Security
頁面檢查了它的狀態),但Android因此報告說設備未加密。
此功能是否被破壞?在SO或其他網絡資源上似乎沒有任何提及。這使我相信我沒有正確地做到DevicePolicyManager
。
UPDATE通過加密的步驟與摩托羅拉設備再次運行後,DevicePolicyManager.getStorageEncryptionStatus()
將返回正確的值,但它的的Nexus仍然失敗7.
是的,顯然是這樣。根據我們的經驗,getStorageEncryptionStatus返回ENCRYPTION_STATUS_INACTIVE,除非啓用了* both *加密並且需要PIN代碼。這似乎是錯誤的,但這是我們必須處理的。 – 2015-06-16 16:33:10
加密開啓但無引腳啓動nexus 6返回ENCRYPTION_STATUS_ACTIVE_DEFAULT_KEY,但帶有Android 6的Galaxy S7返回ENCRYPTION_STATUS_ACTIVE – David 2016-10-27 17:54:57