Dieser Artikel gilt für das EloView Home SDK 6.23.14. Entwicklern wird empfohlen, das EloView Home SDK 6.25.520 für alle neuen Entwicklungsprojekte und zukünftige Integrationen zu verwenden.
Klicken Sie hier, um zu erfahren, was neu im EloView Home SDK 6.25.520 ist.
Klicken Sie hier für das EloView Home SDK 6.25.520 Referenzhandbuch.
EloView Home SDK 6.23.14
Unterstützte Plattformen: Android 12 und Android 14 Elo-Geräte, einschließlich Backpack 4 (Standard/Wert), I-Series 4 (Standard/Wert), I-Series Standard, M50, M60 Pay, M100 und 7-Zoll Pay.
Vollständige Referenz (Wissensdatenbank + SDK Javadoc)
APIs sind nach Funktionalitätsklasse (System, Netzwerk, Paket usw.) organisiert, um die Entdeckung zu vereinfachen und die Implementierung zu beschleunigen.
Globale Best Practices (aus KB)
-
Immer zuerst an den Dienst binden, bevor Sie eine API aufrufen.
Methoden dürfen nicht aufgerufen werden, bisonServiceConnected()empfangen wurde. -
Gehen Sie davon aus, dass die Gerätepoliik die lokalen Einstellungen überschreiben kann.
Dies gilt insbesondere für Zeit, Zeitzone, USB, Kioskmode und Anwendung Installation. -
Verwenden Sie NTP zur Zeitsynchronisierung in der Produktion.
Vermeiden Sie die manuelle Zeiteinstellung, es sei denn, es handelt sich um Tests. -
Verstehen Sie das Rücksetzverhalten.
-
Unternehmensreset löscht die Elo-Konfiguration und den Anmeldestatus.
-
Fabrikreset löscht alle Benutzerdaten und setzt das Gerät in den Zustand „Out of Box“ zurück.
-
-
Protokollieren Sie das Ergebnis jedes API-Aufrufs.
Dies ist entscheidend für die Fehlersuche und Eskalation.
❗ Wichtige Hinweise zur Verwendung
Einige SDK-APIs erfordern spezifische Android-Berechtigungen und können je nach dem, ob das Gerät sich im EloView-Modus oder Android-Home-Modus befindet, unterschiedlich funktionieren. Die Durchsetzung der Gerätepoliik kann lokal angewendete Einstellungen überschreiben. Entwickler sollten den Gerätemodus und den Berechtigungsstatus validieren, bevor sie APIs in Produktionsanwendungen aufrufen.
Das EloView Home SDK ist ein dienstbasiertes Android SDK und erfordert eine erfolgreiche Dienstbindung, bevor API-Aufrufe ausgeführt werden können. Methoden können null oder kein Ergebnis zurückgeben, wenn:
- Der Dienst noch nicht verbunden ist
- Das Gerät nicht in einem kompatiblen EloView-Zustand ist
- Politische Einschränkungen die Operation blockieren
Dieser Leitfaden konzentriert sich auf unterstützte und häufig verwendete Muster. Er zählt nicht jede Android-Berechtigung, Lebenszyklusrandfall oder internen Rückgabestatus auf, die in der Roh- SDK-Javadoc dokumentiert sind. Der Standardprozess zur Verwaltung des Android-Dienstlebenszyklus und zur Fehlerprüfung muss in Produktionsanwendungen implementiert werden.
Häufige reale Szenarien (aus KB)
Szenario: Zeitzone nach Geräteanmeldung falsch
system.setNtpEnabled(true);
system.setNtpServer("time.aws.com");
system.setTimeZone("US/Central");
system.syncTimeNow();
// Überprüfen
String tz = system.getTimeZone();
Log.d(TAG, "Timezone=" + tz);
Tipp: Wenn die Zeitzone nach dem Neustart zurückfällt, überprüfen Sie, ob die automatische Zeitzoneneinstellung von Android aktiviert ist und ob die Gerätepoliik nicht eine andere Region erneut anwendet.
Szenario: Sicherer Kioskmodus für eine einzelne Anwendung konfigurieren
pkg.setKioskApp("com.example.kiosk");
pkg.setKioskModeEnabled(true);
pkg.launchApp("com.example.kiosk");
Warnung: Validieren Sie immer einen administrativen Fluchtweg, bevor Sie den Kioskmodus in der Produktion aktivieren.
Vorlage zur Dienstbindung (aus KB)
eloView.bindService(context, callback, accessToken);
// Sichere Aufrufe von SDK-APIs innerhalb callback.onServiceConnected()
eloView.unbindService(context);
Wichtiger Hinweis: bindService() und unbindService() geben keine Werte zurück. SDK-APIs dürfen nur nach dem Aufruf von onServiceConnected() aufgerufen werden.
Kern- / Dienstbindungs-APIs
EloView
Die EloView-Klasse bietet die folgenden Operationen:
- Setzen Sie den Inhalt, der auf dem Gerät im EloView-Steuermodus abgespielt werden soll, wenn das Gerät offline oder nicht registriert ist, mit setOfflinePlayContent().
- Abrufen des Typs des aktuell im EloView-Steuermodus eingestellten Inhalts (APK oder WebView) und des Namens des Inhalts mit getPlayContent().
- Abrufen des aktuellen Wiedergabestatus des konfigurierten Inhalts im EloView-Steuermodus mit getPlayContentStatus().
- Überprüfen, ob das Gerät derzeit mit der EloView-Cloud verbunden ist (online oder offline) mit getDeviceCloudStatus().
- Wi-Fi in Elo-QuickSettings und Android-Home-Modus mit toggleWifi() aktivieren oder deaktivieren.
- Bluetooth in Elo-QuickSettings und Android-Home-Modus mit toggleBT() aktivieren oder deaktivieren.
bindService
public void bindService(android.content.Context context, ServiceConnectionCallback callback, java.lang.String accessToken)
Diese Methode bindet den EloView-Dienst an die Anwendung. Sie müssen dies aufrufen, bevor Sie irgendwelche EloView-APIs aufrufen.
Parameter
- context – Kontext, in dem die EloView-APIs verwendet werden.
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.bindService(context, callback, "accessToken");
Log.d(TAG, "OK: bindService result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: bindService", e);
}
unbindService
public void unbindService(android.content.Context context)
Diese Methode wird verwendet, um den Dienst von der Anwendung zu lösen. Verwenden Sie diese Methode, um den Dienst von der Anwendung zu lösen, wenn Sie Ressourcen freigeben.
Parameter
- context – Kontext
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.unbindService(context);
Log.d(TAG, "OK: unbindService result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: unbindService", e);
}
setOfflinePlayContent
public java.lang.String setOfflinePlayContent(java.lang.String packageName)
Diese Methode wird verwendet, um den Inhalt auf dem Gerät im EloView-Steuermodus festzulegen, wenn das Gerät offline oder nicht registriert ist. Wenn das Gerät online kommt und der Inhalt über EloView festgelegt wird, wird der über diese API festgelegte Inhalt überschrieben.
Parameter
- packageName – Paket, der als Standardinhalt auf dem Gerät eingestellt werden soll.
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.setOfflinePlayContent("packageName");
Log.d(TAG, "OK: setOfflinePlayContent result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: setOfflinePlayContent", e);
}
getPlayContent
public java.lang.String getPlayContent()
Diese Methode gibt den Typ des Inhalts und den Namen des Inhalts zurück, der auf dem Gerät festgelegt ist. Diese Methode funktioniert nur im EloView-Steuermodus.
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.getPlayContent();
Log.d(TAG, "OK: getPlayContent result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getPlayContent", e);
}
getPlayContentStatus
public java.lang.String getPlayContentStatus()
Diese Methode gibt den Status des Wiedergabeinhalts auf dem Gerät im Steuermodus zurück. Der Status kann einer der folgenden Strings sein:
YET_TO_DOWNLOAD, DOWNLOADING, DOWNLOADED, INSTALLING, INSTALLED, DOWNLOAD_FAILED, INSTALL_FAILED, UNKNOWN_STATUS
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.getPlayContentStatus();
Log.d(TAG, "OK: getPlayContentStatus result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getPlayContentStatus", e);
}
getDeviceCloudStatus
public java.lang.String getDeviceCloudStatus()
Diese Methode gibt den Online- oder Offline-Status des Geräts zurück. Der Status kann einer der folgenden Strings sein: "Online", "Offline", "Connecting", "Reconnecting", "Online (Nicht bereitgestellt)".
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.getDeviceCloudStatus();
Log.d(TAG, "OK: getDeviceCloudStatus result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: getDeviceCloudStatus", e);
}
toggleWifi
void toggleWifi(boolean isEnableWifi)
Aktiviert oder deaktiviert Wi-Fi auf dem Gerät. Dies gilt sowohl im EloView-Modus als auch im Android-Home-Modus.
Parameter
- isEnableWifi – Boolean zur Aktivierung oder Deaktivierung von WiFi in QuickSettings.
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.toggleWifi(true);
Log.d(TAG, "OK: toggleWifi result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleWifi", e);
}
switchToAndroidHomeMode
void switchToAndroidHomeMode() void switchToAndroidHomeMode(boolean isRebootNeeded, boolean isAndroidHomeMode)
Diese Methode wird verwendet, um vom EloView-Modus in den Android-Home-Modus zu wechseln. Dies ist das gleiche wie switchToAndroidHomeMode(), außer dass sie zwei Boolesche Parameter akzeptiert. Es gibt keine Möglichkeit, ohne einen Werksreset in den EloView-Modus zurückzukehren, verwenden Sie dies daher vorsichtig.
Parameter
- Schaltet das Gerät vom EloView-Modus in den Android-Home-Modus um.
- Wenn isRebootNeeded auf true gesetzt ist, wird das Gerät neu gestartet, um die Modusänderung anzuwenden.
- Wichtiger Hinweis: Das Umschalten in den Android-Home-Modus kann EloView-gesteuerte Einschränkungen und Richtlinien deaktivieren.
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.switchToAndroidHomeMode(true, true);
Log.d(TAG, "OK: switchToAndroidHomeMode result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: switchToAndroidHomeMode", e);
}
toggleBT
public int toggleBT(boolean isEnableBT)
Mit dieser Methode wird Bluetooth im QuickSettings (EloView-Modus) umgeschaltet. Es kann auch verwendet werden, um Bluetooth im Android-Home-Modus umzuschalten.
Parameter
- isEnableBT – Boolean zur Aktivierung oder Deaktivierung von Bluetooth in QuickSettings.
Beispiel
try {
// TODO: sicherstellen, dass der Dienst verbunden ist, bevor SDK-APIs aufgerufen werden
Object result = sdk.toggleBT(true);
Log.d(TAG, "OK: toggleBT result=" + result);
} catch (Exception e) {
Log.e(TAG, "FAIL: toggleBT", e);
}
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article