Как определить версию 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.