Поддерживаемые платформы: Устройства Elo на Android 12 и Android 14, включая Backpack 4 (Standard/Value), I-Series 4 (Standard/Value), I-Series Standard, M50, Elo Pay M60, Elo Pay 7”, Elo Pay 22", M100, M100C.
Полная справка (База знаний + SDK Javadoc)
API организованы по функциональным классам (Система, Сеть, Пакет и т. д.) для упрощения поиска и ускорения внедрения.
Глобальные лучшие практики (из Базы знаний)
-
Всегда связывайтесь с сервисом перед вызовом любого API.
Не вызывайте методы, пока не будет полученоonServiceConnected(). -
Предположите, что политика устройства может переопределить локальные настройки.
Это особенно актуально для времени, часового пояса, USB, киоскового режима и установки приложений. -
Используйте NTP для синхронизации времени в производстве.
Избегайте ручной настройки времени, кроме как для тестирования. -
Понимание поведения сброса.
-
Сброс предприятия очищает конфигурацию Elo и состояние регистрации.
-
Сброс к заводским настройкам удаляет все пользовательские данные и возвращает устройство в состояние из коробки.
-
-
Записывайте результат каждого вызова API.
Это критически важно для устранения неполадок и эскалации.
❗ Важные примечания по использованию
Некоторые API SDK требуют определенных разрешений Android и могут вести себя по-разному в зависимости от того, находится ли устройство в режиме EloView или в режиме Android Home. Принятие политики устройства может переопределить локально примененные настройки. Разработчики должны проверить режим устройства и состояние разрешений перед вызовом API в производственных приложениях.
EloView Home SDK является сервисно-ориентированным SDK для Android и требует успешного связывания сервиса прежде чем могут быть выполнены любые вызовы API. Методы могут вернуть null или не результат, если:
- Сервис еще не подключен
- Устройство не находится в совместимом состоянии EloView
- Ограничения политики блокируют операцию
Этот гид фокусируется на поддерживаемых и часто используемых шаблонах. Он не перечисляет каждое разрешение Android, крайний случай жизненного цикла или внутреннее состояние возврата, описанное в сыром SDK Javadoc. Стандартная обработка жизненного цикла Android-сервиса и проверка ошибок должны быть реализованы в производственных приложениях.
Распространенные сценарии из реальной жизни (из Базы знаний)
Сценарий: Неверный часовой пояс после регистрации устройства
system.setNtpEnabled(true);
system.setNtpServer("time.aws.com");
system.setTimeZone("US/Central");
system.syncTimeNow();
// Проверка
String tz = system.getTimeZone();
Log.d(TAG, "Часовой пояс=" + tz);
Подсказка: Если часовой пояс возвращается после перезагрузки, убедитесь, что автоматический часовой пояс Android включен и что политика устройства не применяет другой регион.
Сценарий: Безопасная настройка режима киоска для одного приложения
pkg.setKioskApp("com.example.kiosk");
pkg.setKioskModeEnabled(true);
pkg.launchApp("com.example.kiosk");
Предупреждение: Всегда проверяйте административный путь спасения перед включением киоскового режима в производстве.
Шаблон связывания сервиса (из Базы знаний)
eloView.bindService(context, callback, accessToken);
// Безопасно вызывать API SDK внутри callback.onServiceConnected()
eloView.unbindService(context);
Важно: bindService() и unbindService() не возвращают значения. API SDK должны вызываться только после вызова onServiceConnected().
Основные / сервисные API связывания
EloView
Класс EloView предоставляет следующие операции:
- Установить содержимое для воспроизведения на устройстве в режиме управления EloView, когда устройство отключено или не зарегистрировано в учетной записи, с помощью setOfflinePlayContent().
- Получить тип содержимого (APK или WebView) и название содержимого в данный момент установленного в режиме управления EloView с помощью getPlayContent().
- Получить актуальный статус воспроизведения настроенного содержимого в режиме управления EloView с помощью getPlayContentStatus().
- Проверить, подключено ли устройство к EloView Cloud (онлайн или оффлайн) с помощью getDeviceCloudStatus().
- Переключить Wi-Fi в быстрых настройках Elo и в режиме Android Home с помощью toggleWifi().
- Переключить Bluetooth в быстрых настройках Elo и в режиме Android Home с помощью toggleBT().
bindService
public void bindService(android.content.Context context, ServiceConnectionCallback callback, java.lang.String accessToken)
Этот метод связывает сервис EloView с приложением. Вы должны вызвать это перед вызовом любых API EloView.
Параметры
- context – Контекст, в котором используются API EloView.
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.bindService(context, callback, "accessToken");
Log.d(TAG, "OK: результат bindService=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: bindService", e);
}
unbindService
public void unbindService(android.content.Context context)
Этот метод используется для отвязывания сервиса от приложения. Используйте этот метод для отвязывания сервиса от приложения при очистке ресурсов.
Параметры
- context – Контекст
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.unbindService(context);
Log.d(TAG, "OK: результат unbindService=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: unbindService", e);
}
setOfflinePlayContent
public java.lang.String setOfflinePlayContent(java.lang.String packageName)
Этот метод используется для установки содержимого на устройстве в режиме управления EloView, когда устройство отключено или не зарегистрировано в учетной записи. Если устройство подключится онлайн и содержимое будет установлено через EloView, оно переопределит содержимое, установленное через этот API.
Параметры
- packageName – Пакет, который будет установлен в качестве содержимого по умолчанию на устройстве.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.setOfflinePlayContent("packageName");
Log.d(TAG, "OK: результат setOfflinePlayContent=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setOfflinePlayContent", e);
}
getPlayContent
public java.lang.String getPlayContent()
Этот метод возвращает тип содержимого и имя содержимого, установленного на устройстве. Этот метод работает только в режиме управления EloView.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getPlayContent();
Log.d(TAG, "OK: результат getPlayContent=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getPlayContent", e);
}
getPlayContentStatus
public java.lang.String getPlayContentStatus()
Этот метод возвращает статус воспроизведения на устройстве в режиме управления. Статус может быть одним из следующих строк:
YET_TO_DOWNLOAD, DOWNLOADING, DOWNLOADED, INSTALLING, INSTALLED, DOWNLOAD_FAILED, INSTALL_FAILED, UNKNOWN_STATUS
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getPlayContentStatus();
Log.d(TAG, "OK: результат getPlayContentStatus=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getPlayContentStatus", e);
}
getDeviceCloudStatus
public java.lang.String getDeviceCloudStatus()
Этот метод возвращает статус устройства в облаке. Статус может быть одним из следующих строк: "Online", "Offline", "Connecting", "Reconnecting", "Online (Not Provisioned)".
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getDeviceCloudStatus();
Log.d(TAG, "OK: результат getDeviceCloudStatus=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getDeviceCloudStatus", e);
}
toggleWifi
void toggleWifi(boolean isEnableWifi)
Включает или отключает Wi-Fi на устройстве. Это применяется как в режиме EloView, так и в режиме Android Home.
Параметры
- isEnableWifi – логическое значение для включения или отключения Wi-Fi в быстрых настройках.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.toggleWifi(true);
Log.d(TAG, "OK: результат toggleWifi=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleWifi", e);
}
switchToAndroidHomeMode
void switchToAndroidHomeMode() void switchToAndroidHomeMode(boolean isRebootNeeded, boolean isAndroidHomeMode)
Этот метод используется для переключения в режим Android Home из режима EloView. Это то же самое, что и switchToAndroidHomeMode(), за исключением того, что он принимает два логических параметра. Нельзя переключиться обратно в режим EloView без сброса к заводским настройкам, поэтому используйте с осторожностью.
Параметры
- Переключает устройство из режима EloView в режим Android Home.
- Если isRebootNeeded установлено в true, устройство перезагрузится, чтобы применить изменение режима.
- Важное примечание: переключение в режим Android Home может отключить ограничения и политики, управляемые EloView.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.switchToAndroidHomeMode(true, true);
Log.d(TAG, "OK: результат switchToAndroidHomeMode=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: switchToAndroidHomeMode", e);
}
toggleBT
public int toggleBT(boolean isEnableBT)
Этот метод используется для переключения Bluetooth в быстрых настройках (режим EloView). Его также можно использовать для переключения Bluetooth в режиме Android Home.
Параметры
- isEnableBT – логическое значение для включения или отключения Bluetooth в быстрых настройках.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.toggleBT(true);
Log.d(TAG, "OK: результат toggleBT=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleBT", e);
}
API учетной записи
AccountManager
Класс AccountManager предоставляет следующие операции:
1. Предоставьте токен аутентификации от EloServer на основе учетных данных, предоставленных пользователем (emailId/пароль или clientId/секретный ключ).
2. Подтвердите, действителен ли данный токен аутентификации или истек. Токен аутентификации может быть либо токеном, полученным от сервера EloView, либо оффлайн JWT токеном, предоставленным командой поддержки Elo. (Оффлайн токен генерируется с использованием имени пакета вашего приложения и может использоваться только с пакетом, для которого он был сгенерирован.)
3. Все API требуют оффлайн токена для работы и не будут работать с онлайн токеном. Единственное исключение – это API OTA. API OTA требуют онлайн токен, когда применяется OTA из сервера EloView. Для применения OTA через пользовательский URL сервера или из локального файла на устройстве можно использовать оффлайн токен.
Пример получения токена аутентификации:
1. Используя emailId и пароль, вызовите getEloAccessToken. 2. Используя clientId и secretKey, вызовите getEloOAuthToken. При успешной аутентификации эти методы вернут токен. 3. Для оффлайн JWT токена свяжитесь с командой поддержки Elo.
Токен, полученный с сервера или от команды поддержки, проверяется с помощью метода verifyEloToken.
Отмените регистрацию широковещательных приемников, используемых этими API AccountManager, с помощью метода unregisterAccountManagerListener в методах onPause и onDestroy активностей, в которых вы используете эти API, чтобы избежать утечек.
getProperty
public static java.lang.String getProperty()
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getProperty();
Log.d(TAG, "OK: результат getProperty=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getProperty", e);
}
setProperty
public void setProperty(java.lang.String property)
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.setProperty("property");
Log.d(TAG, "OK: результат setProperty=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setProperty", e);
}
getClientId
public static java.lang.String getClientId()
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getClientId();
Log.d(TAG, "OK: результат getClientId=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getClientId", e);
}
getBaseUri
public static android.net.Uri getBaseUri()
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getBaseUri();
Log.d(TAG, "OK: результат getBaseUri=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getBaseUri", e);
}
getEloAccessToken
public void getEloAccessToken(android.content.Context context, java.lang.String userEmail, java.lang.String password, android.os.Handler handler)
Этот метод используется для получения токена доступа от сервера Elo.
Параметры
- context – Объект контекста вызывающего класса (Activity или Service).
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getEloAccessToken(context, "userEmail", "password", handler);
Log.d(TAG, "OK: результат getEloAccessToken=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getEloAccessToken", e);
}
configureOAuthHostedUI
public void configureOAuthHostedUI(android.app.Activity activity, android.os.Handler handler)
Этот метод используется для инициализации OAuth Hosted UI.
Параметры
- activity – Экземпляр активности вызывающего класса.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.configureOAuthHostedUI(activity, handler);
Log.d(TAG, "OK: результат configureOAuthHostedUI=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: configureOAuthHostedUI", e);
}
stopOAuth
public void stopOAuth()
Вызовите stopOAuth в методе переопределения onStop() активности.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.stopOAuth();
Log.d(TAG, "OK: результат stopOAuth=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: stopOAuth", e);
}
destroyOAuth
public void destroyOAuth()
Вызовите destroyOAuth в методе переопределения onStop() активности.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.destroyOAuth();
Log.d(TAG, "OK: результат destroyOAuth=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: destroyOAuth", e);
}
logoutOAuth
public void logoutOAuth()
Вызовите logoutOAuth, чтобы завершить текущую сессию входа.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.logoutOAuth();
Log.d(TAG, "OK: результат logoutOAuth=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: logoutOAuth", e);
}
verifyEloToken
public void verifyEloToken(android.content.Context context, java.lang.String accessToken, android.os.Handler handler)
Эта функция запрашивает у сервера Elo подтверждение данного токена. При успешной проверке обработчик получит сообщение типа TOKEN_VERIFY_SUCCESS. В случае неудачи будет получено TOKEN_VERIFY_FAIL.
Параметры
- context – Объект контекста вызывающего класса (Activity или Service).
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.verifyEloToken(context, "accessToken", handler);
Log.d(TAG, "OK: результат verifyEloToken=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: verifyEloToken", e);
}
getUserCertPwd
public java.lang.String getUserCertPwd()
Этот метод используется для получения пароля пользовательского сертификата.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getUserCertPwd();
Log.d(TAG, "OK: результат getUserCertPwd=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getUserCertPwd", e);
}
setUserCertPwd
public void setUserCertPwd(java.lang.String userCertPwd)
Этот метод используется для установки пароля пользовательского сертификата.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.setUserCertPwd("userCertPwd");
Log.d(TAG, "OK: результат setUserCertPwd=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setUserCertPwd", e);
}
getCertType
public NetworkSecurityType getCertType()
Метод используется для получения типа сертификата.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getCertType();
Log.d(TAG, "OK: результат getCertType=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getCertType", e);
}
setCertType
public void setCertType(NetworkSecurityType securityType)
Этот метод используется для установки типа сертификата.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.setCertType(securityType);
Log.d(TAG, "OK: результат setCertType=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setCertType", e);
}
setCertPath
public void setCertPath(java.lang.String certPath)
Этот метод используется для установки пути сертификата.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.setCertPath("certPath");
Log.d(TAG, "OK: результат setCertPath=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setCertPath", e);
}
getCertPath
public java.lang.String getCertPath()
Этот метод используется для получения пути сертификата.
Пример
try {
// TODO: убедитесь, что сервис связан перед вызовом API SDK
Object result = sdk.getCertPath();
Log.d(TAG, "OK: результат getCertPath=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getCertPath", e);
}
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article