如何检查 "verify app" 是否以编程方式启用或禁用

How to check if "verify app" is enabled or disabled programmatically

如果 google 的 "verify app" 在应用程序启动时被禁用,我有一个安全要求提醒用户。问题是我不知道有什么方法可以检查 "verify app" 是否被禁用。

我尝试使用下面的代码,但它总是返回 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;

此外,作为一项要求,如果此功能被禁用,则希望用户导航到 "verifiy app" 设置。

你应该这样检查:

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

阅读偏好,将不再有帮助,因为 android 现在不更新偏好。所以基本上读取 google 的首选项值 Verify 将不起作用。

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

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