android - 查明设备是否经过全盘加密以及使用了什么加密方式?

标签 android encryption android-3.0-honeycomb

由于支持 Android 3.0 全盘加密,但我看不到该功能的任何 API。我需要知道的两件事是:

  1. 设备是否加密?
  2. 使用什么加密方式。

我找到了 process here 的低级解释并且它似乎暗示使用的加密是 128 AES with CBC 和 ESSIV:SHA256,但它没有谈论一种方法来查找设备是否已加密。

那么,我的应用程序是否可以查询设备是否正在使用全盘加密功能,或者我是否需要求助于 Runtime.exec 调用等骇人听闻的解决方案?

最佳答案

正如@Mikle 提到的,您只需调用 DevicePolicyManager 并询问其状态

@SuppressLint("NewApi")
    private boolean isEncrypted(Context context) {
        DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context
                .getSystemService(Context.DEVICE_POLICY_SERVICE);

        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
            int status = devicePolicyManager.getStorageEncryptionStatus();
            if (DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE == status) {
                return true;
            }
        }
        return false;
    }

关于android - 查明设备是否经过全盘加密以及使用了什么加密方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6341684/

相关文章:

java - RxJava 和长时间运行的监听器

java - 点击 RecyclerView Item 查看详情

android - Sencha Touch 2 - 旋转木马仅在构建后卡在第一个面板上

Java 加密/安全错误

android - 在 ListView 末尾叠加图像

java - 使用 Java/Liberty 连接到 Bluemix 上的 DB2 数据库

java - 保留 Web 服务密码

html - 在保存到数据库之前在 AngularJS 中加密密码

android - 默认图片库无法以编程方式在 Android HoneyComb 平板电脑 (v 3.2) 中打开

android - 在动态壁纸选择器 Android 3.0 中旋转设备时出现 IllegalArgumentException