如何打开并检查是启用还是禁用Play Protect

时间:2017-11-30 01:22:05

标签: android android-intent google-play android-settings google-settings

    minSdkVersion 18
    targetSdkVersion 27

使用以下代码,我可以打开 Google设置页面。

private static final String GOOGLE_SETTINGS_COMPONENT = "com.google.android.gms";
private static final String GOOGLE_SETTINGS_ACTIVITY = ".app.settings.GoogleSettingsActivity";
Intent i = new Intent();
i.setClassName(GOOGLE_SETTINGS_COMPONENT,GOOGLE_SETTINGS_COMPONENT + GOOGLE_SETTINGS_ACTIVITY);
try {
      startActivity(i);
} catch (android.content.ActivityNotFoundException ex) {
      Toast.makeText(getApplicationContext(), "Activity Not Found", Toast.LENGTH_LONG).show();
 }
  1. 是否可以直接打开 Google设置 - > 安全性 - > Google Play Protect 页面。
  2. 如何启用或禁用扫描设备是否存在安全威胁选项?

1 个答案:

答案 0 :(得分:6)

  

1)是否可以直接打开Goog​​le设置 - >安全 - >   Google Play Protect页面?

您可以使用com.google.android.gms.security.settings.VerifyAppsSettingsActivity意图直接启动播放保护屏幕,如下所示。

val intent = Intent()
intent.setComponent(ComponentName("com.google.android.gms", "com.google.android.gms.security.settings.VerifyAppsSettingsActivity"))
startActivity(intent)

Here是Playstore的元数据APK,你可以看到所有可用的活动。

  

2)如何检查“扫描设备是否存在安全威胁”选项   启用还是禁用?

开发人员可以从SafetyNet Verify Apps API获取用户设备上已安装应用程序格局的类似安全见解。这套新API可让开发人员确定用户的设备是否受Google Play Protect保护,鼓励尚未使用Google Play Protect的用户启用它,并识别设备上安装的任何已知potentially harmful apps(PHA)。

这些API对于可能受到与其应用在同一设备上的已安装PHA影响的应用的开发人员特别有用。确定使用isVerifyAppsEnabled()启用Google Play Protect可让开发人员更加确信设备更可能是干净的。如果设备未启用Google Play Protect,开发者可以请求用户使用enableVerifyApps()启用Google Play Protect。启用Google Play Protect后,开发人员可以使用listHarmfulApps()方法确定用户设备上是否安装了任何可能有害的应用。这个易于使用的功能套件不需要API密钥和请求配额。

编译com.google.android.gms:play-services-safetynet:11.6.0并使用以下代码。

  

确定是否启用了应用验证

SafetyNet.getClient(this)
    .isVerifyAppsEnabled()
    .addOnCompleteListener(new OnCompleteListener<VerifyAppsUserResponse>() {
        @Override
        public void onComplete(Task<VerifyAppsUserResponse> task) {
            if (task.isSuccessful()) {
                VerifyAppsUserResponse result = task.getResult();
                if (result.isVerifyAppsEnabled()) {
                    Log.d("MY_APP_TAG", "The Verify Apps feature is enabled.");
                } else {
                    Log.d("MY_APP_TAG", "The Verify Apps feature is disabled.");
                }
            } else {
                Log.e("MY_APP_TAG", "A general error occurred.");
            }
        }
    });
  

请求启用应用验证

SafetyNet.getClient(this)
    .enableVerifyApps()
    .addOnCompleteListener(new OnCompleteListener<VerifyAppsUserResponse>() {
        @Override
        public void onComplete(Task<VerifyAppsUserResponse> task) {
            if (task.isSuccessful()) {
                VerifyAppsUserResponse result = task.getResult();
                if (result.isVerifyAppsEnabled()) {
                    Log.d("MY_APP_TAG", "The user gave consent " +
                          "to enable the Verify Apps feature.");
                } else {
                    Log.d("MY_APP_TAG", "The user didn't give consent " +
                          "to enable the Verify Apps feature.");
                }
            } else {
                Log.e("MY_APP_TAG", "A general error occurred.");
            }
        }
    });

为了获得更好的保护,开发人员应使用证明API以及新的Verify Apps API。首先使用attestation API确定设备尚未从已知状态进行修改。一旦可以信任Android系统,就可以信任验证应用API的结果。

P.S。事先使用API​​

阅读Additional TOS