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

Gvt*_*tha 4 android android-intent google-play android-settings google-settings

    minSdkVersion 18
    targetSdkVersion 27
Run Code Online (Sandbox Code Playgroud)

使用以下代码,我可以打开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();
 }
Run Code Online (Sandbox Code Playgroud)
  1. 是否可以直接打开Google设置 - > 安全性 - > Google Play保护页面.
  2. 如何启用或禁用" 扫描设备安全威胁"选项?

Ano*_*p M 8

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

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

是playstore的元数据APK,你可以看到所有可用的活动.

2)如何启用或禁用"扫描设备安全威胁"选项?

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

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

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

确定是否启用了应用验证

val intent = Intent()
intent.setComponent(ComponentName("com.google.android.gms", "com.google.android.gms.security.settings.VerifyAppsSettingsActivity"))
startActivity(intent)
Run Code Online (Sandbox Code Playgroud)

请求启用应用验证

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.");
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

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

PS 在使用API​​之前,请通读附加TOS