Sie sehen sich Hilfeinhalte der folgenden Version an:

Auf dieser Seite wird die Implementierung der Funktion Android Watchdog erläutert.

Ein Watchdog ist eine Lösung zur Wiederherstellung des Players nach Abstürzen. Eine Anwendung muss sich selbst beim Watchdog-Dienst registrieren und dann regelmäßig Nachrichten zur Bestätigung ihrer Aktivität an den Dienst senden. Falls der Watchdog-Dienst innerhalb der geforderten Zeit keine Keep-Alive-Nachricht erhält, versucht der Dienst das Gerät neu zu starten, um eine saubere Wiederherstellung durchzuführen (bei ausreichenden Rechten) oder die Anwendung neu zu starten.

Implementieren von Android Watchdog

Aufgrund der Architektur von Android erfordert der Neustart des Geräts, dass die Anwendung über Systemrechte verfügt. Hierzu müssen Sie die apk mithilfe der Signierungsschlüssel des Herstellers signieren. Andernfalls startet Watchdog die Player-Anwendung neu und nicht das Gerät.

Signieren von Android-apks mithilfe von Herstellerschlüsseln

Zum Zugreifen auf die berechtigten APIs von Android, wie zum Beispiel PowerManager oder HDMIControlServices, müssen Sie die Android-apk mithilfe der Herstellerschlüssel signieren.

Vorsicht:

Voraussetzungen:

Die Android SDK sollte installiert sein, bevor Sie die folgenden Schritte durchführen.

Gehen Sie wie folgt vor, um die Android-apk mithilfe von Herstellerschlüsseln zu signieren:

  1. Laden Sie die apk von Google Play oder von der Seite AEM Screens Player Downloads herunter.
  2. Rufen Sie die Plattformschlüssel des Herstellers ab, um eine pk8- und eine pem-Datei zu erhalten.
  3. Suchen Sie nach dem apksigner-Tool in Android SDK mithilfe von find ~/Library/Android/sdk/build-tools -name "apksigner"
  4. <Pfad> /apksigner sign --key platform.pk8 --cert platform.x509.pem aemscreensplayer.apk
  5. Suchen Sie den Pfad zum Zipalign-Tool in Android SDK.
  6. <Pfad> /zipalign -fv 4 aemscreensplayer.apk aemscreensaligned.apk
  7. Installieren Sie aemscreensaligned.apk mithilfe von adb install auf dem Gerät

Implementierung von Android Watchdog

Der Android Watchdog-übergreifende Dienst wird mithilfe von AlarmManager als Cordova-Plug-in implementiert.

Das folgende Diagramm zeigt die Implementierung des Watchdog-Diensts:

chlimage_1

1. Initialisierung

Zum Zeitpunkt der Initialisierung des Cordova-Plug-ins werden die Berechtigungen geprüft, um zu erfahren, ob wir über Systemrechte und damit über die Berechtigung zum Neustart verfügen. Sind diese beiden Kriterien erfüllt, wird eine Pending-Intent für den Neustart erstellt. Andernfalls wird eine Pending-Intent für den Neustart der Anwendung (basierend auf ihrer Startaktivität) erstellt.

2. Keep-Alive-Timer

Ein Keep-Alive-Timer wird verwendet, um alle 15 Sekunden ein Ereignis auszulösen. In diesem Fall müssen Sie die vorhandene Pending-Intent abbrechen (um die App neu zu starten) und eine neue Pending-Intent für die gleichen 60 Sekunden in der Zukunft registrieren (also im Grunde den Neustart verschieben).

Hinweis:

In Android wird der AlarmManager für die Registrierung von pendingIntents verwendet, die auch dann noch ausgeführt werden können, wenn die App abgestürzt ist und die Alarmbereitstellung von API 19 (Kitkat) ungenau ist. Behalten Sie etwas Abstand zwischen dem Intervall des Timers und dem AlarmManager-Alarm pendingIntent bei.

3. Anwendungsabsturz

Im Fall eines Absturzes wird die pendingIntent für den Neustart, die beim AlarmManager registriert ist, nicht mehr zurückgesetzt. Daher führt sie (je nach den zum Zeitpunkt der Initialisierung des Cordova-Plug-ins verfügbaren Berechtigungen) einen Neustart der App durch.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie