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

Репозиторий на GitHub

Смотрите исходный код и примеры на GitHub

Нативный SDK: Это рекомендуемый подход для Android-приложений. Нативные SDK обеспечивают лучший пользовательский опыт, оптимизированную работу с камерой и полную поддержку NFC.


Требования

Доступность функций по уровню API: автоопределение документов и лиц требует API 24+ (собственные легковесные детекторы Didit, входящие в didit-sdk-core). На устройствах с API 23 SDK переходит к ручному захвату с кнопкой спуска затвора с таймером. Все остальные функции работают во всём диапазоне API 23+.
Биометрическое согласие требует нативный SDK версии 4.10.0 или новее. Для людей, на которых распространяется законодательство Иллинойса, Техаса или Колорадо, Didit может запросить явное биометрическое согласие перед первым захватом лица. Android SDK 4.10.0 и новее показывают этот шаг. Более ранние версии не могут его показать: их сессии выполняются как прежде, а решение сообщает, что согласие не собрано (biometric_consent.reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"). Обновитесь, если вы верифицируете людей в этих штатах.

Установка

Шаг 1: Добавьте репозиторий

Добавьте репозиторий Didit Maven в блок repositories вашего файла settings.gradle.kts:
Или, если используется settings.gradle (Groovy):

Шаг 2: Добавьте зависимость

Добавьте зависимость SDK в файл build.gradle.kts вашего приложения: (!) Перед установкой проверьте в репозитории GitHub, какая версия последняя.
Или, если используется build.gradle (Groovy):

Варианты SDK

Android SDK поставляется в виде отдельных артефактов, поэтому ваше приложение занимает в бинарном коде только столько места, сколько нужно для используемых функций. me.didit:didit-sdk выше — это полный пакет. Выберите подходящий вариант: Начиная с 4.6.0, нативная подпись кошелька WalletConnect поставляется как отдельное необязательное дополнение me.didit:didit-sdk-wallet. Полный пакет me.didit:didit-sdk уже включает его, поэтому при установке пакета ничего не меняется. Если вы используете один из облегчённых артефактов и хотите, чтобы подтверждение владения кошельком выполнялось нативно внутри приложения, добавьте me.didit:didit-sdk-wallet рядом с ним. Без этого дополнения SDK завершает подтверждение владения кошельком через защищённый сценарий в браузере, так что функция работает в любом случае. Перенос WalletConnect из didit-sdk-core также убрал несколько мегабайт зависимостей для кошельков из каждой сборки, которой они не нужны. Все артефакты публикуются в одной версии, поэтому для всех используйте 4.13.2.

Как уменьшить размер загрузки

Модели обнаружения, которые используются для автозахвата, загружаются во время работы приложения и кэшируются, поэтому они никогда не учитываются в размере вашего приложения. Автозахват добавляет в приложение нативную библиотеку ML-рантайма, а её размер зависит от архитектуры процессора: примерно 10 МБ для arm64-v8a, 7 МБ для armeabi-v7a и 13 МБ для каждой из двух x86-архитектур эмуляторов. Чтобы заплатить за это только один раз:
  1. Публикуйте Android App Bundle (AAB). Google Play доставляет только архитектуру и языки конкретного устройства, поэтому телефон на arm64 устанавливает примерно 10 МБ нативного кода (около 4 МБ в сжатом виде при загрузке). Универсальный APK содержит все четыре архитектуры и весит более 40 МБ, что чаще всего и приводит к неожиданно большим показателям размера.
  2. Если вы распространяете один APK, а ваша аудитория — телефоны и планшеты на ARM, ограничьте включаемые архитектуры:
    Сохраните все ABI, которые реально используют ваши пользователи: добавьте x86_64, если вы поддерживаете Chromebook или другие x86-устройства, либо публикуйте APK с разделением по ABI, чтобы ни одно устройство не потеряло поддержку.
  3. Включите R8: установите isMinifyEnabled = true и isShrinkResources = true в типе сборки release (minifyEnabled true и shrinkResources true, если вы используете Groovy build.gradle). SDK поставляется с собственными consumer-правилами, поэтому неиспользуемый код SDK удаляется без дополнительной настройки.
  4. Ограничьте включаемые языки с помощью resConfigs(...), если вам не нужны все 48 локалей SDK в сборке APK. Разделение AAB по языкам делает это автоматически в Google Play.

Шаг 3: Добавьте исключение упаковки

Добавьте это в блок android вашего приложения, чтобы избежать конфликтов сборки:
Вот и всё! Gradle автоматически разрешит все транзитивные зависимости.

Разрешения

SDK требует следующие разрешения. Они объявлены в AndroidManifest.xml SDK и автоматически добавляются в манифест вашего приложения:

Функции камеры и NFC

SDK объявляет android.hardware.camera и android.hardware.nfc как необязательные функции (android:required="false"). Благодаря этому ваше приложение можно установить на устройства без камеры или NFC-модуля. SDK корректно обработает отсутствие этого оборудования во время работы.

Быстрый старт

Шаг 1: Инициализация SDK

Инициализируйте SDK в Application.onCreate():

Шаг 2: Запуск верификации и обработка результатов


Способы интеграции

SDK поддерживает два способа интеграции: Бэкенд не нужен. SDK создаёт сессию напрямую, используя ID вашего сценария из Didit Console. Доступен только vendorData.

Способ 2: Сессия на бэкенде (рекомендуется для продакшна)

Ваш бэкенд создаёт сессию через API создания сессии верификации (POST /v3/session/) с полной поддержкой параметров (contact_details, expected_details, metadata, callback и других), после чего передаёт session_token в SDK.
Этот подход даёт вам полный контроль над следующими возможностями:
  • Связывание сессий с вашими пользователями (vendor_data)
  • Задание пользовательских метаданных
  • Настройка callback для каждой сессии
  • Передача контактных данных и ожидаемых данных для перекрёстной проверки

Конфигурация

Настройте поведение SDK:

Параметры конфигурации

Параметры камеры

Параметры камеры совпадают с параметрами камеры Web SDK. Каждый объектив задаётся как CameraLens.FRONT или CameraLens.BACK. Если на устройстве нет запрошенного объектива, SDK использует первую камеру, которая у него есть. Переключатель камеры также скрывается на устройствах с одной камерой. Чтобы закрепить за пользователем объектив по умолчанию для этого шага, установите для переключателя значение false.
Параметры showLanguageSelector, showCloseButton, showExitConfirmation и closeOnComplete совпадают с DiditSdkConfiguration Web SDK. Параметры languageLocale и fontFamily специфичны для мобильного SDK, потому что мобильный SDK отрисовывает весь интерфейс верификации нативно (в отличие от Web SDK, который делегирует отображение размещённому фронтенду внутри iframe).
Тема и цвета: цвета, фоны и настройки начальных экранов задаются в настройках White label в Didit Console, а не в конфигурации SDK. Так обеспечивается единый брендинг на всех платформах.

Поддержка языков

SDK поддерживает 54 языка. Если язык не указан, SDK использует локаль устройства, а если локаль не поддерживается, использует английский язык.
Посмотреть все поддерживаемые языки →

Расширенные параметры

Для расширенных параметров сессии (contact_details, expected_details, metadata, callback) используйте способ Сессия на бэкенде. Ваш бэкенд вызывает API создания сессии верификации с полным набором параметров, а затем передаёт session_token в SDK.

Обработка результатов

Sealed-класс VerificationResult содержит результат верификации:

Варианты результата

Свойства SessionData

Типы ошибок

Все ошибки являются sealed-подклассами me.didit.sdk.VerificationError:

Потеря соединения

Если устройство теряет соединение во время верификации, SDK показывает экран «Нет подключения к интернету» вместо того, чтобы оставлять текущий шаг в состоянии загрузки. SDK продолжает проверять соединение в фоновом режиме и сам закрывает экран, как только Didit снова становится доступен. Пользователь продолжает с того шага, на котором остановился. На экране есть кнопка Try Again, и если showCloseButton равен true (по умолчанию), кнопка Exit Verification. Выход завершает верификацию с VerificationResult.Failed(error = VerificationError.NetworkError, session = ...), поэтому ваше приложение узнает, что пользователь вышел из-за потери соединения.

Полный пример обработки результата


Наблюдение за состоянием SDK

Вы можете отслеживать состояние SDK, например для собственного интерфейса загрузки:

ProGuard / R8

SDK включает собственные consumer-правила ProGuard. Дополнительная настройка не требуется. Если вы используете полный режим R8, возможно, потребуется добавить в gradle.properties следующее:

Пример от начала до конца (сессия на бэкенде → Android SDK → результат)

Этот подход подходит для продакшена. Ваш бэкенд создаёт сессию, ваше Android-приложение получает session_token, а SDK запускает процесс верификации.

1. Бэкенд: создание сессии

2. Android: обмен токеном и запуск SDK

3. Бэкенд: получение итогового решения через webhook

Результат SDK удобен для отображения в интерфейсе, но окончательное решение приходит через webhook. Подробнее о проверке HMAC см. в руководстве по webhook.

Полный пример


Последнее изменение 7 ноября 2026 г.