Начало работы | Mobile SDK | 2GIS Documentation
Android SDK

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

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

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

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

    override fun onCreate() {
        super.onCreate()

        sdkContext = DGis.initialize(
            this
        )
    }
}

Обратите внимание, что нельзя создавать более одного экземпляра Context.

Дополнительно можно указать настройки журналирования (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
)

Объект класса 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()
            )
            ...
        )

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

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

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

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