Перейти к основному содержимому

Начало работы

Инициализация SDK

  1. Обратитесь в службу поддержки 2ГИС для получения ключа доступа. Обязательно укажите appId приложения, для которого будет создан ключ. Подробнее см. в разделе Получение ключей доступа.

  2. Добавьте полученный файл ключа dgissdk.key в assets приложения.

  3. Вызовите метод initialize() объекта DGis, указав контекст приложения:

    class Application : Application() {
    lateinit var sdkContext: Context

    override fun onCreate() {
    super.onCreate()

    sdkContext = DGis.initialize(
    this
    )
    }
    }

    Важно

    Context может быть создан только в единственном экземпляре.

  4. Дополнительно вы можете указать настройки журналирования (LogOptions) и настройки HTTP-клиента (HttpOptions), такие как кеширование. С помощью LogOptions также можно настроить отправку логов в Firebase Crashlytics.

    // Настройки журналирования
    val logOptions = LogOptions(
    LogLevel.VERBOSE
    )

    // Настройки HTTP-клиента
    val httpOptions = HttpOptions(
    useCache = false
    )

    // Согласие на сбор и отправку персональных данных
    val dataCollectConsent = PersonalDataCollectionConsent.GRANTED

    sdkContext = DGis.initialize(
    appContext = this,
    dataCollectConsent = dataCollectConsent,
    logOptions = logOptions,
    httpOptions = httpOptions
    )

Отправка логов в Firebase Crashlytics

Объект класса LogOptions, кроме настройки уровня логирования, также позволяет использовать собственный приемник логов, с помощью параметра customSink. LogSink – интерфейс с единственным методом write(), который необходимо реализовать.

Реализация для отправки сообщений лога в Firebase Crashlytics может выглядеть так:

class FirebaseLogSink : LogSink {
override fun write(message: LogMessage) {
FirebaseCrashlytics.getInstance().log(message.text)
}
}

Передайте экземпляр этого класса в метод initialize() объекта DGis:

sdkContext = DGis.initialize(
...
logOptions = LogOptions(
...
customSink = FirebaseLogSink()
)
...
)

Vendor Config

Для переопределения некоторых настроек работы SDK используется файл в формате VendorConfig, который передается при инициализации SDK.

Существует несколько способов создать экземпляр класса VendorConfig:

  • VendorConfigFromAsset - файл необходимо расположить в каталоге assets исходного кода приложения и указать имя файла в конструкторе.
  • VendorConfigFromFile – файл необходимо расположить на файловой системе устройства и указать абсолютный путь до него.
  • VendorConfigFromString – в конструктор необходимо передать строку с содержимым файла формата json.

Созданный экземпляр VendorConfig передается в метод DGis.initialize() параметром vendorConfig.

Работа с офлайн-данными

Мобильный SDK (версия Full) позволяет работать с данными карты, справочника и навигатора офлайн из предзагруженных пакетов. Это может быть полезно в условиях плохой связи или при её полном отсутствии.

Чтобы настроить работу в режиме офлайн:

  1. Убедитесь, что ваш ключ доступа содержит необходимые права для работы с офлайн-данными. Вы можете запросить права на офлайн-данные всех компонентов (карта, справочник, построение маршрутов) или выбрать только необходимые.

  2. Скачайте файлы с данными для территорий, где необходима офлайн-работа приложения, через TerritoryManager.

    См. пример кода для загрузки территорий.

  3. Настройте компоненты SDK для работы с предзагруженными данными:

Язык приложения

Чтобы установить язык приложения, передайте список локалей (Locale) в методе overrideLocales() класса LocaleManager.

В зависимости от выбранной локали меняется язык звуковых оповещений в навигаторе.

Пример установки англоязычной локали:

// Создание объекта Locale с указанием языка и региона
val locale = Locale(language = "en", region = "EN")

// Установка локали для приложения
getLocaleManager(sdkContext).overrideLocales(listOf(locale))

Доступные значения языков (параметры language и region соответственно):

  • ru-RU — русский;
  • en-EN — английский;
  • ar-AE — арабский.