Android N プレビューのドキュメントには次のように記載されています。
このアーリー ビルドは、互換性テスト スイート (CTS) の承認を受けていません。CTS 承認済みビルドに依存するアプリは動作しません (Android Pay など)。
私の Android アプリでは、最初の起動時にデバイス/ビルドが CTS 承認されているかどうかを確認したいと考えています。これは可能ですか?Android Pay はどのようにそれを行いますか?
Android N プレビューのドキュメントには次のように記載されています。
このアーリー ビルドは、互換性テスト スイート (CTS) の承認を受けていません。CTS 承認済みビルドに依存するアプリは動作しません (Android Pay など)。
私の Android アプリでは、最初の起動時にデバイス/ビルドが CTS 承認されているかどうかを確認したいと考えています。これは可能ですか?Android Pay はどのようにそれを行いますか?
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
}
}
});
そして、指示に従って"ctsProfileMatch": true
応答を解析し、結果の JSONを探します。