2016-04-21 4 views
-1

В документации Android N предпросмотре упоминается:Как обнаружить одобренную CTS версию Android?

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

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

+0

Ссылка на документацию: http://developer.android.com/preview/support.html#general (может скоро устаревать) – friedger

ответ

3

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

позволяет ваше приложение, чтобы проверить, если устройство, на котором он работает соответствует профилю устройства, которое прошло тестирование 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 
    } 
    } 
}); 

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

+0

Ницца, любые идеи, что делать, если Службы Google Play недоступны? – friedger

+0

Только у Google есть список устройств, которые передают CTS, поэтому без подключения Google Play к серверу Google невозможно проверить. – ianhanniballake