App-Verknüpfungen

Mit der Version 7.1.1 von Android können Entwickler in ihren Apps aktionsspezifische Verknüpfungen definieren, die in einem Launcher angezeigt werden können. Mit diesen App-Verknüpfungen können Nutzer schnell gängige oder empfohlene Aufgaben in einer App starten.

Jeder Verknüpfung ist eine Intent zugeordnet, die eine bestimmte Aktion in der App auslöst, wenn Nutzer die Verknüpfung auswählen. Beispiele für Aktionen, die Sie als App-Verknüpfungen ausdrücken können:

  • Nutzer in einer Karten-App zu einem bestimmten Ort weiterleiten
  • Nachrichten an einen Freund in einer Kommunikations-App senden
  • Wiedergabe der nächsten Folge einer Serie in einer Medien-App
  • Laden des letzten Speicherpunkts in einer Gaming-App

Beispiele und Quelle

Die Hauptimplementierung dieser Funktion finden Sie in den folgenden Dateien:

frameworks/base/services/core/java/com/android/server/policy/ShortcutManager.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutUser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutParser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutService.java
frameworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java
frameworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java
frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutServiceInternal.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

Die folgenden Dateien bieten unterstützende Funktionen (in ShortcutManager.java als „ausgeblendete APIs“ bezeichnet):

packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java

Der Android Open Source Project Launcher Version 3 unterstützt beispielsweise Verknüpfungen:

packages/apps/Launcher3/

In den folgenden Dateien finden Sie die öffentliche Javadoc-Dokumentation.

frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

Implementierung

Der AOSP Launcher3 unterstützt bereits Verknüpfungen. Wenn ein Partner einen eigenen Launcher hat, sollte dieser Launcher auch Verknüpfungen unterstützen.

  • Wenn der Nutzer eine bestimmte Geste (z.B. langes Drücken) auf ein App-Symbol ausführt, sollte der Launcher die dynamischen und manifesten Verknüpfungen anzeigen, die mit den einzelnen Aktivitätssymbolen des Launchers verknüpft sind.
    Die Sortierreihenfolge der Verknüpfungen wird in der Javadoc-Datei von ShorctutManager im Abschnitt „Shortcut Display Order“ (Reihenfolge der angezeigten Verknüpfungen) definiert. Sie können beispielsweise zuerst die Manifestkürzel und dann die dynamischen Verknüpfungen anzeigen. Die Verknüpfungen sind innerhalb jeder Gruppe nach Rang in aufsteigender Reihenfolge sortiert.
  • Der Nutzer sollte jeden dynamischen/Manifest-Verknüpfungs-Shortcut ziehen und auf dem Startbildschirm anpinnen können.
  • Angepinnte Verknüpfungen sollten gesichert und wiederhergestellt werden. (Weitere Informationen finden Sie in der Javadoc-Datei von ShortcutManager.)
  • Wenn Sie auf eine Benachrichtigung eine „Inline-Antwort“ senden, sollte intern ShortcutManager.onApplicationActive aufgerufen werden.

Außerdem haben einige Apps von Google Mobile Services (GMS) Verknüpfungen. Der OEM-Launcher sollte Verknüpfungen für diese Apps anzeigen und idealerweise auch das Anpinnen (oder das Erstellen eines Verknüpfungssymbols) unterstützen.

Weitere Informationen zur Interaktion mit dem Framework für die oben genannten Vorgänge finden Sie in der Launcher3-Quelle.

Zertifizierungsstufe

Mit den folgenden CTS-Tests (Compatibility Test Suite) können Sie prüfen, ob Ihre Version der Funktion (ShortcutManager und LauncherApps) wie vorgesehen funktioniert:

cts/tests/tests/shortcutmanager/
cts/hostsidetests/shortcuts/

Die Unittests für die AOSP-Implementierung finden Sie hier:

frameworks/base/services/tests/servicestests/

Dazu gehören:

src/com/android/server/pm/ShortcutManagerTest*.java

Sie können auch den CTS-Verifier-Test für den Tastenkürzelmanager verwenden:

cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java