Как определить версию Android, утвержденную CTS?

В документации по Android N Preview упоминается:

Эта ранняя сборка не одобрена CTS. Приложения, которые зависят от утвержденных сборок CTS, не будут работать (например, Android Pay).

В моем приложении для Android я хочу проверить, одобрено ли устройство / сборка CTS при первом запуске. Это возможно? Как Android Pay это делает?

1 ответ

API SafetyNet позволяет запускать проверку совместимости, которая:

позволяет вашему приложению проверять, соответствует ли устройство, на котором оно работает, профилю устройства, прошедшего тестирование на совместимость с Android. Проверка совместимости создает профиль устройства путем сбора информации об аппаратных и программных характеристиках устройства, включая сборку платформы.

После того, как у вас есть GoogleApiClient с использованием SafetyNet.API, ты можешь позвонить

byte[] nonce = getRequestNonce(); // Should be at least 16 bytes in length.
SafetyNet.SafetyNetApi.attest(mGoogleApiClient, nonce)
.setResultCallback(new ResultCallback<SafetyNetApi.AttestationResult>() {
  @Override
  public void onResult(SafetyNetApi.AttestationResult result) {
    Status status = result.getStatus();
    if (status.isSuccess()) {
      // Indicates communication with the service was successful.
      // result.getJwsResult() contains the result data
    } else {
      // An error occurred while communicating with the service
    }
  }
});

И разобрать ответ по инструкции, ища "ctsProfileMatch": true в результате JSON.

Другие вопросы по тегам