# Информация о выпусках (Release notes) Webim Mobile SDK v4.0 для Android

Ниже представлен список выпусков **Webim Mobile SDK 4.0** для **Android**. Артефакт на Maven Central: `ru.webim.sdk:webimclientsdkandroid:4.0.0` (для патчей линии 4.0 используйте `4.0.+`).

!!! Note "Совместимость с Webim Server"
    **Webim Mobile SDK 4.0** рассчитан на работу с **Webim Server** не ниже `10.5.30`. Ряд возможностей (HTTP endpoint сводной информации о сессии с числом непрочитанных сообщений, облегчённый режим без полного long poll, согласование URL через ответ **meta** и т.д.) опирается на API ветки **10.8** и новее — ориентируйтесь на **Webim Server 10.8+**, если используете эти функции.

## 4.0.0

Общая линия релиза — поддержка **облегчённого режима** сессии и **запроса счётчиков непрочитанных** через отдельный HTTP endpoint (задача **WMANDROIDSDK-794** на стороне SDK и соответствующие изменения на **Webim Server**), а также расширение настройки сетевого уровня и push-систем.

  * **Облегчённый режим (light mode).** Метод [`SessionBuilder.setLightModeEnabled(true)`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#set-light-mode-enabled) переводит клиент в режим без полного цикла приёма дельт long poll: после успешной авторизации delta-луп завершается, poller-луп не используется. Подходит для сценариев с ограниченным трафиком и отладки. В сочетании с [`MessageStream.getInfo`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#get-info) можно получать актуальные счётчики без постоянного соединения в режиме полного чата (при поддержке сервера).

  * **Endpoint счётчиков (`getInfo`).** Добавлен запрос к HTTP API сводной информации (по умолчанию путь `l/v/m/info`; на **Webim Server 10.8+** URL может указываться в ответе **meta**). Ответ [`GetInfoResponse`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#get-info-response) содержит `unreadMessagesCount` и `historyLastChangeTs`. Периодичность опроса задаётся на стороне приложения.

  * **Заголовки запросов.** Метод [`SessionBuilder.setRequestHeader(Map<String, String>)`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#set-request-header) задаёт дополнительные HTTP-заголовки при создании сессии; для уже созданной сессии используйте [`WebimSession.setRequestHeaders`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#set-request-headers). Требования согласовываются с конфигурацией **Webim Server**.

  * **Push: FCM и Huawei Push Kit.** В перечислении [`PushSystem`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#remote-notification-system) остались `NONE`, `FCM` и `HPK`. Разбор уведомлений — [`parseFcmPushNotification(String)`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#parse-fcm-push-notification) и перегрузка с `visitorId`. API **GCM** (`parseGcmPushNotification`, `getGcmSenderId`, `setGCMSenderId`, значение `PushSystem.GCM`) в 4.0 нет.

  * **Резервные домены.** [`SessionBuilder.setExtraDomains`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#set-extra-domains) позволяет задать запасные хосты. Значение по умолчанию в SDK 4.0.0: `webim2.ru`, `webim.chat`.

  * **Логирование по областям.** [`SessionBuilder.setLoggerEntities`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#set-logger-entities) ограничивает вывод значениями [`WebimLogEntity`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#webim-log-entity) (`SERVER`, `MESSAGES`, `SURVEYS`, `DATABASE`). Области необходимо передать явно; без вызова метода набор областей пуст.

  * **Принудительный старт чата.** Методы [`forceStartChat()`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#force-start-chat) и [`forceStartChatWithDepartmentKey(String)`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#force-start-chat-with-department-key) интерфейса [`MessageStream`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#message-stream) переводят чат в состояние очереди независимо от обычной логики отложенного старта.

  * **Локальное хранение.** История сообщений пишется в SQLCipher; без явного [`setVisitorDataPreferences`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#set-visitor-data-preferences) SDK создаёт зашифрованные `SharedPreferences`. Ошибки шифрования отражаются как [`FatalErrorType.GENERAL_SECURITY_ERROR`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#fatal-error-type); проблемы HTTPS — как [`FatalErrorType.SSL_ERROR`](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html#fatal-error-type).

  * **Прочее.** Наследуются исправления и доработки линии **Mobile SDK 3.x** последних выпусков. Минимальный API Android — 21. При миграции укажите `ru.webim.sdk:webimclientsdkandroid:4.0.+` и `sdkVersionName=4.0.0` (или фактический патч 4.0.x).

Дополнительные сигнатуры и пояснения — в [справочнике](https://webim.ru/kb/mobile/sdk/v-4-0/android-sdk-handbook.html) и [интеграции](https://webim.ru/kb/mobile/sdk/v-4-0/android-integration.html).

---

Источник: https://webim.ru/kb/mobile/sdk/v-4-0/android-release-notes.html
