Начало работы
Начало работы
Сначала нужно обратиться в техническую поддержку 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
)
Отправка логов в 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