【问题标题】:How to check if "verify app" is enabled or disabled programmatically如何以编程方式检查“验证应用程序”是否启用或禁用
【发布时间】:2017-02-09 09:03:31
【问题描述】:

如果谷歌的“验证应用”在应用启动时被禁用,我有一个安全要求来提醒用户。问题是我不知道有什么方法可以检查“验证应用程序”是否被禁用。

我尝试使用下面的代码,但它总是返回 1。

        int verifierInt = -1;
        if (Build.VERSION.SDK_INT >= 17) {
            verifierInt = Settings.Global.getInt(context.getContentResolver(), "package_verifier_enable", -1);
        } else if (Build.VERSION.SDK_INT >= 14) {
            verifierInt = Settings.Secure.getInt(context.getContentResolver(), "verifier_enable", -1);
        } else {
            // No package verification option before API Level 14
        }
        boolean isVerifyAppEnabled = verifierInt == 1;

此外,作为一项要求,如果禁用此功能,则希望用户导航到“验证应用”设置。

【问题讨论】:

  • 您在测试时是否禁用了设备上的验证应用(在设置/谷歌/安全/验证应用下)?
  • @DevrimTuncer 是的,对 :) 在任何情况下,它都会返回 1。

标签: android security verify


【解决方案1】:

你应该像这样检查:

Settings.Global.getInt(context.getContentResolver(), "verifier_verify_adb_installs", -1);

【讨论】:

    【解决方案2】:

    阅读首选项不再有用,因为 android 现在不更新首选项。所以基本上阅读谷歌验证的偏好值是行不通的。

    请使用下面的 SaftyNet 回调来验证 Google 保护。

    SafetyNet.getClient(context)
                    .isVerifyAppsEnabled()
                    .addOnCompleteListener(new OnCompleteListener<SafetyNetApi.VerifyAppsUserResponse>() {
                        @Override
                        public void onComplete(@NonNull Task<SafetyNetApi.VerifyAppsUserResponse> task) {
    ---
    }
    });
    

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多