5

Pracuję nad aplikacją dla systemu Android, która rozpoczyna proces szyfrowania danych na urządzeniu.Wykryj programowo, jeśli urządzenie z Androidem może szyfrować pamięć masową.

jestem wykrywania stanu szyfrowania z tym kodem:

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); 
} 

na niektórych urządzeniach, szyfrowanie rozpoczęciem procesu i kończy się niepowodzeniem. Zazwyczaj te urządzenia nie mają opcji "Szyfrowanie" dostępnej w menu Ustawienia> Bezpieczeństwo (Android 3.x i Android 4.x).

Czy istnieje sposób, aby programowo wykryć, czy urządzenie jest w stanie wykonać szyfrowanie pamięci masowej?

Dzięki w adavance.

Odpowiedz

0

Urządzenia, które nie obsługują szyfrowania, powinny zwrócić ENCRYPTION_STATUS_UNSUPPORTED podczas dzwonienia pod numer getStorageEncryptionStatus().

Mam nadzieję, że to pomoże.

+0

Dziękuję za odpowiedź, ale niestety niektóre urządzenia, które nie obsługują szyfrowania, zwracają nieprawidłową wartość. Mam problemy z niektórymi urządzeniami Fujitsu w systemie Android 4.X i niektórymi urządzeniami Sharp z systemem Android 4.X. W przypadku tych urządzeń szyfrowanie rozpoczyna się i kończy się niepowodzeniem. Następnie przywrócenie ustawień fabrycznych jest obowiązkowe. –