すべてのプロダクト
Search
ドキュメントセンター

ID Verification:Android 統合

最終更新日:Jul 15, 2026

ID Verification Android SDK を統合して、アプリに eKYC のリモート本人確認を追加します。サーバーサイドの Initialize API からトランザクション ID を取得し、SDK に渡して本人確認を開始します。

制限事項

Android 4.3 以降のスマートフォンとタブレットに対応しています。

x86 デバイスには対応していません。

必要な権限

SDK は、ランタイムに次の権限を必要とします。

権限

必須

説明

android.permission.INTERNET

はい

ネットワークにアクセスするために必要です。

android.permission.ACCESS_NETWORK_STATE

いいえ (推奨します)

android.permission.CAMERA

はい

顔スキャンに必要です。Android 6.0 以降では動的な権限が必要です。

android.permission.WRITE_EXTERNAL_STORAGE

いいえ

com.aliyun.dpa:oss-android-sdk:$version コンポーネントは、この権限を自動的に宣言します。アプリでこの権限が不要な場合は、remove タグを使用して AndroidManifest.xml から削除してください:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:remove="true" />

SDK のダウンロードと設定

  1. クライアント SDK リリースノートから AAR パッケージをダウンロードします。また、Android Demo をダウンロードして機能を試すこともできます。

  2. AAR ファイルをプロジェクトの libs ディレクトリに展開し、これらの依存関係を build.gradle に追加します。

    dependencies {
        // SDK モジュール
        implementation files('libs/idv-identityplatform-xxx.aar') 
        implementation files('libs/idv-identityface-xxx.aar') 
        implementation files('libs/idv-identitycrypto-xxx.aar') 
        implementation files('libs/idv-identityocr-xxx.aar') 
        implementation files('libs/Android-AliyunFaceGuard-xxx.aar')
        implementation files('libs/idv-identitybase-sdk-xxx.aar') 
        implementation files('libs/idv-identityservice-sdk-xxx.aar') 
        implementation files('libs/idv-identityquality-sdk-xxx.aar') 
        implementation files('libs/idv-identityblink-sdk-xxx.aar')
        implementation files('libs/idv-identitymouth-sdk-xxx.aar')
    
        implementation files('libs/idv-identitymnn-xxx.aar') 
        implementation files('libs/idv-identityocrservice-xxx.aar') 
        implementation files('libs/idv-identitynfc-xxx.aar') 
        implementation files('libs/IDOCR_PubSDK_Android-1.0.0.aar') 
    
        // または、fileTree を使用して ID Verification SDK の AAR ファイルのディレクトリを指定します。
        //implementation(fileTree(dir: "libs", includes: ["*.aar"]))
    
        implementation "androidx.appcompat:appcompat:1.5.0"
        implementation "androidx.activity:activity:1.7.0"
        implementation "androidx.recyclerview:recyclerview:1.0.0"
        implementation 'com.squareup.okhttp3:okhttp:4.9.3'
        implementation 'com.squareup.okio:okio:2.8.0'
        implementation 'com.aliyun.dpa:oss-android-sdk:2.9.21'
        implementation 'com.alibaba:fastjson:1.2.83_noneautotype'
    }
    説明
    • xxx は SDK のバージョン番号です。

    • すべてのサードパーティの依存関係を含めてください。含まれていない場合、SDK が正常に機能しないことがあります。

    • tygerservice-xxx.aar はバージョン 1.3.4 で削除されました。

    • idv-identitymouth-sdk-xxx.aar はバージョン 1.3.6 で追加されました。

API リファレンス

SDK は、installgetMetaInfoverify の 3 つの API を提供します。各 API の詳細は、以下で説明します。

SDK の初期化 (インストール)

  • 関数プロトタイプ

    public void install(Context context);
    public void install(Context context,Map<String, String> options);
  • パラメーター

    • context :アプリケーションのコンテキスト。

    • options パラメーターは、デフォルトでは null で、オプションのデータ収集設定を指定します。

      重要
      • ID Verification クライアントには、デバイスヘルパーとして知られるセキュリティモジュールが組み込まれています。デバイスヘルパーは、現地のデータ収集コンプライアンス要件を満たすために、さまざまなデータ報告リージョンを提供します。ユーザーの属性に基づいて、CustomUrlCustomHost を設定して、異なる報告サイトを指定できます。

      • アプリケーションセッションのライフサイクルごとに指定できるデータ報告リージョンは 1 つだけです。サーバー側のクエリのリージョンは、報告リージョンと一致する必要があります。サポートされるリージョンはプロダクトによって異なります。詳細については、「サポートされるリージョン」をご参照ください。

      • 各リージョンの CustomUrl は以下の通りです:

        • 中国 (香港)https://cloudauth-device.cn-hongkong.aliyuncs.com

        • シンガポールhttps://cloudauth-device.ap-southeast-1.aliyuncs.com

        • インドネシア (ジャカルタ)https://cloudauth-device.ap-southeast-5.aliyuncs.com

        • 米国 (シリコンバレー)https://cloudauth-device.us-west-1.aliyuncs.com

        • ドイツ (フランクフルト)https://cloudauth-device.eu-central-1.aliyuncs.com

        • マレーシア (クアラルンプール)https://cloudauth-device.ap-southeast-3.aliyuncs.com

      パラメーター

      説明

      IPv6

      デバイス情報を報告するために IPv6 ドメイン名を使用するかどうかを示します:

      • 0 (デフォルト):いいえ (IPv4 ドメイン名を使用)

      • 1:はい (IPv6 ドメイン名を使用)

      "1"

      DataSwitch

      デバイス情報をいつ報告するかを制御します:

      • 0 (デフォルト):SDK の初期化時

      • 1:トークン取得時

      説明

      デフォルト設定を推奨します。

      "1"

      CustomUrl

      データ報告用のサーバードメイン名を設定します。

      各リージョンの CustomUrl」をご参照ください。

      CustomHost

      データ報告用のサーバーホストを設定します。

      "cloudauth-device.ap-southeast-1.aliyuncs.com"

      説明

      この例はシンガポールリージョン用です。他のリージョンのサーバーホストについては、「各リージョンの CustomUrl」をご参照ください。

  • 戻り値:なし。

MetaInfo の取得 (getMetaInfo)

  • 関数プロトタイプ

    public static String getMetaInfo(Context context);
  • パラメーター

    名前

    説明

    context

    Context

    アプリケーションコンテキストです。

  • 戻り値:デバイス環境情報を含む JSON 文字列です。

    {
      "apdidToken": "",
      "appName": "com.aliyun.identity.platform",
      "appVersion": "1.0.1",
      "bioMetaInfo": "5.1.0:11501568,4",
      "deviceBrand": "xxx",
      "deviceManufacturer": "xxx",
      "deviceModel": "xxx",
      "deviceType": "android",
      "identityVer": "1.0.0",
      "osVersion": "10",
      "sdkVersion": "1.0.9"
    }

検証の開始(verify)

重要
  • verify を呼び出す前に、MetaInfo をサーバーに渡し、Initialize API からトランザクション ID を取得します。

  • 新しいバージョンでは protocol フィールドが返されます。これを extParams で渡してください。

  • 関数のプロトタイプ

    public void verify(String transactionId, Map<String, String> extParams, IdentityCallback callback);
  • パラメーター

    名前

    説明

    transactionId

    String

    サーバーサイドの Initialize API から取得した transactionId。

    重要

    各トランザクション ID は 1 回限りです。verify を呼び出すたびに新しい ID を取得してください。

    extParams

    Map<String, String>

    拡張パラメーター。不要な場合は null を渡します。

    サポートされているフィールド: extParams の設定説明

    callback

    IdentityCallback

    検証結果のコールバック。リターンコード: IdentityResponse.code テーブル

    コールバックの定義:

    public class IdentityResponse {
        // リターンコードの説明を参照。
        public int code;
    
        // 結果コードの説明。
        public String message;
    }
    
    public interface IdentityCallback {
        boolean response(IdentityResponse response);
    }
  • extParams の設定説明

    キー

    説明

    例 (String 型)

    IdentityParams.OcrResultButtonColor

    OCR 結果ページのボタンの色。

    #FF0000

    IdentityParams.RoundProgressColor

    顔スキャン中の円の色。

    #FF0000

    IdentityParams.ShowAlbumIcon

    OCR 中にアルバムアップロードのエントリを表示するかどうか:

    • 1 (デフォルト):表示

    • 0:非表示

    1

    IdentityParams.ShowOcrResult

    OCR 認識結果ページを表示するかどうか:

    • 1 (デフォルト):表示

    • 0:非表示

    1

    IdentityParams.EditOcrResult

    OCR 結果ページの編集可否:

    • 1 (デフォルト):編集可能

    • 0:編集不可

    1

    IdentityParams.MaxErrorTimes

    最大再試行回数。

    範囲:3~10。 デフォルト:10。

    10

    IdentityParams.CardOcrTimeOutPeriod

    OCR 認識タイムアウト。

    範囲:20~60 秒。 デフォルト:20 秒。

    20

    IdentityParams.FaceVerifyTimeOutPeriod

    生体検知タイムアウト。

    範囲:20~60 秒。 デフォルト:20 秒。

    20

    IdentityParams.OcrResultTimeOutPeriod

    OCR 結果ページの編集タイムアウト (秒単位)。

    デフォルト:無制限。

    60

    IdentityParams.SdkLanguage

    SDK の表示言語をカスタマイズできます。デフォルトでは、SDK はモバイルデバイスのシステム言語を使用します。

    説明

    サポートされている言語の一覧については、「Android および iOS SDK の言語のカスタマイズ」をご参照ください。

    zh-Hans

    IdentityParams.CloseButtonLayout

    閉じるボタンのレイアウト:

    • left (デフォルト):左側

    • right:右側

    left

    IdentityParams.WaterMark

    OCR 成功後に表示されるウォーターマークテキスト。

    Test watermark text

    IdentityParams.Protocol

    サーバーサイドの Initialize API レスポンスからのプロトコル文字列。

    説明

    サーバーサイドの Initialize API レスポンスから protocol 値を渡すと、内部 API 呼び出しが削減され、パフォーマンスが向上します。

    None

  • IdentityResponse.code テーブル

    ステータスコード

    課金

    subCode

    説明

    1000

    はい

    A1000_1

    顔スキャンが完了しました。 予備結果:合格。 正式な結果については、サーバーサイドの CheckResult API を呼び出してください。

    1001

    はい

    A1001_1

    顔スキャンが完了しました。 予備結果:不合格。 正式な結果と失敗の理由については、サーバーサイドの CheckResult API を呼び出してください。

    1002

    いいえ

    A1002_1

    モデルの読み込みに失敗

    A1002_2

    アプリがバックグラウンドに移動。フォアグラウンドに戻ったときに SDK が終了。

    A1002_3

    SO ライブラリの読み込みに失敗。

    1003

    いいえ

    A1003_1

    Initialize API のレスポンスが空

    A1003_2

    Initialize API のレスポンス形式が無効。

    A1003_3

    Initialize API の接続に失敗。

    A1003_4

    Initialize API のレスポンスの復号に失敗。

    A1003_5

    Initialize API の呼び出しに失敗 (コードが 200 でないか、BizCode が CODE_INIT_SUCCESS ではありません)。

    A1003_6

    Initialize API の OSS 設定が空。

    A1003_7

    Context パラメーターが null。

    A1003_8

    Protocol パラメーターが null。

    1004

    いいえ

    A1004_1

    フロントカメラのエラー。

    A1004_2

    カメラのオープンに失敗。

    A1004_3

    リアカメラのエラー。

    1005

    いいえ

    A1005_1

    初期化中のネットワークエラー

    A1005_2

    検証中のネットワークエラー。

    1006

    いいえ

    A1006_1

    ユーザーによる操作中断。

    1007

    いいえ

    A1007_1

    無効な transactionId。

    1008

    いいえ

    A1008_1

    NFC モジュールがありません。

    A1008_2

    OCR モジュールがありません。

    A1008_3

    顔認証モジュールがありません。

    1009

    いいえ

    クライアントのタイムスタンプエラー。

    1010

    いいえ

    A1010_1

    verify() の前に install() が呼び出されていません。

    1011

    いいえ

    送信されたドキュメントタイプが不正。

    1012

    いいえ

    A1012_1

    主要なドキュメント情報がないか、形式の検証に失敗。

    1013

    いいえ

    画質が低い。

    1014

    いいえ

    A1014_1

    最大エラー試行回数に到達。

    1015

    いいえ

    A1015_1

    Android のバージョンが低すぎます。

    1016

    いいえ

    A1016_1

    カメラの権限が付与されていません。

    1017

    いいえ

    A1017_1

    パラメーターの例外:productCode が空。

    2000

    いいえ

    A2000_1

    NFC 設定に失敗。

    A2000_2

    NFC 権限が有効になっていません。

    2002

    いいえ

    A2002_1

    デバイスは NFC をサポートしていません。

サンプルコード

public class MainActivity extends AppCompatActivity {
    private String transactionId = "";
    private String protocol = "";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        // SDK を初期化します
        IdentityPlatform.getInstance().install(MainActivity.this);
    
        // メタ情報を取得します
        String metaInfo = IdentityPlatform.getMetaInfo(MainActivity.this);
    
        /**
         * メタ情報をアプリサーバーに送信します。 クラウド側の Initialize API を呼び出してトランザクション ID を取得します。
         * 新しいバージョンではプロトコルデータが返されます。
         */
        // transactionId = getTransactionIdFromServer(metaInfo).transactionId;
        // protocol = getTransactionIdFromServer(metaInfo).protocol;
        
        Map<String, String> extParams = new HashMap();
        // プロトコルデータをセットします
        extParams.put(IdentityParams.PROTOCOL, protocol);
        // SDK 言語をセットします
        extParams.put(IdentityParams.SdkLanguage, "en");
        // 検証を開始します
        IdentityPlatform.getInstance().verify(transactionId, extParams,
                new IdentityCallback() {
                    @Override
                    public boolean response(final IdentityResponse response) {
                        if (IdentityResponseCode.IDENTITY_SUCCESS == response.code) {
                            Toast.makeText(MainActivity.this,
                                    "Verification passed", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(MainActivity.this,
                                    "Verification failed([" + response.code + "]" +
                                            response.message + ")",
                                    Toast.LENGTH_LONG).show();
                        }
                        return true;
                    }
                });
    }
    
}

難読化ルール

-verbose
-keep class com.idv.identity.platform.api.** {*;}
-keep class com.idv.identity.platform.log.** {*;}
-keep class com.idv.identity.util.IdentityUtils {*;}
-keep class com.idv.identity.ocr.IdentityOcrApi {*;}
-keep class com.idv.identity.platform.model.** {*;}
-keep class com.idv.identity.platform.config.** {*;}
-keep class com.idv.identity.face.IdentityFaceApi {*;}


-keep class com.face.verify.intl.** {*;}
-keep class com.alibaba.fastjson.** {*;}
-keep class face.security.device.api.** {*;}
-keep class net.security.device.api.** {*;}
-keep class com.dtf.toyger.** { *; }
-dontwarn net.security.device.api.**
-dontwarn face.security.device.api.**


-keep class com.idv.identity.service.algorithm.** {*;}
-keep class com.idv.identity.base.algorithm.** {*;}
-keep class com.idv.identity.quality.QualityRouter {*;}
-keep class com.idv.identity.blink.BlinkRouter {*;}
-keep class com.idv.identity.service.IdentityFaceService {*;}
-keep class com.idv.identity.service.ocr.IdentityDocService {*;}
-keep class com.idv.identity.mouth.MouthRouter {*;}

-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**



# NFC
-keep class com.idv.identity.nfc.IdentityNfcApi { *; }
-keep class org.jmrtd.** {*;}
-keep class net.sf.**{*;}
-keep class org.**{*;}
-keep class cn.**{*;}


# 警告を抑制するには、既存の keep ルールにこれらのルールを追加してください。
# これは Android Gradle プラグインによって自動的に生成されます。
-dontwarn com.fasterxml.**
-dontwarn com.google.**
-dontwarn java.applet.Applet
-dontwarn java.awt.**
-dontwarn javax.**
-dontwarn org.**
-dontwarn retrofit2.**
-dontwarn springfox.documentation.spring.web.json.Json

# ログの難読化 (任意)
-assumenosideeffects class android.util.Log {
    public static *** d(...);
}

# 1.3.2 より前のバージョンを使用している場合は、次の難読化ルールを追加してください:
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.alibaba.fastjson.** { *; }
-keep class * extends com.alibaba.fastjson.TypeReference { *; }

コンポーネントのトリミング

トリミング可能

モジュール名

モジュールの説明

トリミング後の影響

コンパイル後のサイズ

デュアルアーキテクチャ

ARM64

ARMv7

トリミング不可

idv-identitybase-sdk-[version].aar

基本モジュール

トリミング不可

0.1 MB

トリミング不可

idv-identityplatform-[version].aar

基本モジュール

トリミング不可

0.13 MB

トリミング不可

idv-identitycrypto-[version].aar

基本モジュール

トリミング不可

0.44 MB

0.25 MB

0.19 MB

トリミング可能

idv-identityface-[version].aar

顔認識用の基本 UI モジュール

顔のライブネス検出が利用できなくなります。

0.05 MB

トリミング可能

tygerservice-[version].aar

顔認識用の基本モジュール

説明

バージョン 1.3.4 以降で削除済み。

顔のライブネス検出が利用できなくなります。

2.6 MB

1.67 MB

1.4 MB

トリミング可能

idv-identitymnn-[version].aar

顔のライブネス検出、顔の品質、OCR 自動スキャン用の基本コンポーネント

顔のライブネス検出、顔の品質検出、OCR 自動スキャンが利用できなくなります。

2.2 MB

1.2 MB

1.04 MB

トリミング可能

idv-identityservice-sdk-[version].aar

顔のライブネス検出

顔のライブネス検出が利用できなくなります。

0.8 MB

0.59 MB

0.54 MB

トリミング可能

idv-identityblink-sdk-[version].intl.aar

瞬きライブネス検出モジュール

瞬きライブネス検出が利用できなくなります。

0.2 MB

トリミング可能

idv-identitymouth-sdk-[version].aar

口の動き検出モジュール

口の動き検出が利用できなくなります。

1.2 MB

トリミング可能

idv-identityquality-sdk-[version].aar

厳格な顔品質検出。サーバーサイドではオプションです。不要な場合はトリミング可能です。

顔の品質とオクルージョン検出が利用できなくなります。

0.2 MB

トリミング可能

idv-identityocr-[version].aar

OCR モジュール。eKYC 検証に必要です。

OCR および eKYC 検証機能が利用できなくなります。

0.23 MB

トリミング可能

idv-identityocrservice-[version].aar

OCR サービスモジュール。OCR 自動スキャンを有効にします。

OCR 自動スキャンが利用できなくなります。

0.61 MB

0.47 MB

0.42 MB

トリミング可能

Android-AliyunFaceGuard-[version].aar

デバイスガードモジュール。顔スキャン中の検証環境を保護します。

クライアント側のセキュリティが低下します。保持を推奨します。

3.3 MB

2.8 MB

2 MB

トリミング可能

IDOCR_PubSDK_Android-1.0.0.aar

NFC サービスモジュール

説明

eKYC 検証で NFC が不要な場合は、このモジュールをトリミングできます。

NFC 機能が利用できなくなります。

5.2 MB

トリミング可能

idv-identitynfc-[version].intl.aar

NFC ビジネスモジュール

説明

eKYC 検証で NFC が不要な場合は、このモジュールをトリミングできます。

NFC 機能が利用できなくなります。

0.14 MB