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();
}
答案 0 :(得分:6)
1)是否可以直接打开Google设置 - >安全 - > 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