ym88659208ym87991671
Настройка и подключение SDK для партнеров | Документация для разработчиков

Настройка и подключение SDK для партнеров

Обновлено 15 августа 2023

Операционная система (ОС) Салют ТВ построена на базе ОС Android. SDK под Android предоставляется в виде библиотеки в формате ARR. Для подключения используется файл в виде ZIP-архива partner_sdk.aar.

Добавление библиотек в проект:

  • скопируйте файл partner_sdk.aar в директорию проекта;
  • при использовании Gradle добавьте следующую зависимость в файле build.gradle.
dependencies {
implementation "ru.sberdevices.smartapp:sdk:1.1.1"
implementation files('../partner_sdk.aar')
}

После синхронизации в проекте будут доступны файлы библиотек.

Проверка совместимости функций и ОС

С версии 1.1.1 методы классов SDK отмечены аннотацией @SinceVersion. Аннотация указывает версию aidl-сервиса, начиная с которой поддерживается метод. Такой подход позволяет избежать использования неактуальных методов, которые не поддерживаются в StarOS. Рассинхронизация в поддержке методов возникает из-за разницы релизных циклов SDK и StarOS.

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

Проверяйте совместимость методов при имплементации интерфейсов:

  • Analytics;
  • PublicDeviceInfoManager;
  • PartnerTokenApi.

Получение DeviceID

Начиная с версии прошивки 1.83 имеется возможность использовать метод для получения открытого идентификатора DeviceID. Пример вызова представлен ниже:

private val deviceInfo = PublicDeviceInfoFactory.create(
context = context,
binderHelperFactory2 = BinderHelperFactory2Impl(),
coroutineDispatchers = CoroutineDispatchers
)
fun retrieveDeviceId() {
deviceInfo.registerDeviceInfoListener(object : PublicDeviceInfoListener {
override fun onPublicDeviceInfo(publicDeviceInfo: PublicDeviceInfo) {
publicDeviceInfo.deviceId
Log.d("retrieveDeviceId", "deviceId = ${publicDeviceInfo.deviceId}")
}
})
}
retrieveDeviceId()

Хранение ID устройства

{
publicDeviceInfo.deviceId
}

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

В случае, если новый метод не возвращает идентификатор, необходимо использовать метод для предыдущей прошивки соответственно.

Оповещение о полном отказе от предыдущего метода будет направлено за полтора месяца до его обновления.

Получение партнерского токена

<manifest>
<uses-permission android:name="ru.sberdevices.permission.BIND_ACCOUNT_LINKING_SERVICE" />
</manifest>

Получение токена доступно исключительно для заранее сконфигурированных Application ID. Вызов данного метода вернет токен только для партнеров, для других приложений вернет ошибку

private val partnerToken = PartnerTokenFactory.create(
context = context,
binderHelperFactory2 = BinderHelperFactory2Impl(),
coroutineDispatchers = CoroutineDispatchers
)
fun retrievePartnerToken() {
val coroutineScope = CoroutineScope(CoroutineDispatchers.ui)
coroutineScope.launch {
val token =
partnerToken.getPartnerToken().getOrNull()?.token ?: "couldn't get partner token"
Log.d("retrievePartnerToken", "partnerToken = $partnerToken")
}
}
retrievePartnerToken()

Хранение партнерского токена при успешном получении

{
partnerToken.getPartnerToken().getOrNull()?.token ?: "couldn't get partner token"
}

Получение статуса прелогина

Для прошивки 1.88 реализован метод для получения статуса прелогина. Пример кода:

val partnerTokenImpl = PartnerTokenFactory.create(
context = this,
coroutineDispatchers = CoroutineDispatchers,
binderHelperFactory2 = BinderHelperFactory2Impl()
)
coroutineScope.launch {
val version = partnerTokenImpl.getVersion()
if (version != null && version >= 2) {
partnerTokenImpl.isPrelogin().fold(onSuccess = { isPrelogin ->
// Статус прелогина успешно получен.
}, onFailure = {
// Произошла ошибка при получении статуса прелогина.
})
} else {
// Текущая версия сервиса, которая не поддерживает получение статуса прелогина.
}
}

Отправка аналитики

Пример кода:

private val analytics = AnalyticsFactory.create(context)
fun sendAnalytics(tag: String, value: String) {
analytics.send(tag, value)
Log.d("sendAnalytics", "analytics successfully sent")
}
sendAnalytics("Example TAG", "Example value")
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.