App-Verknüpfungen

Mit der Android-Version 7.1.1 können Entwickler aktionsspezifische Verknüpfungen in ihren Apps, die in einem Launcher angezeigt werden können. Diese App Shortcuts ermöglichen es Nutzern, schnell gängige oder empfohlene Aufgaben

Jede Verknüpfung verweist auf einen Intent, der eine bestimmte Aktion in der App startet. wenn Nutzer die Verknüpfung auswählen. Beispiele für Aktionen, die du als App ausdrücken kannst Tastenkombinationen:

  • Nutzer zu einem bestimmten Ort in einer Karten-App leiten
  • Nachrichten über eine Kommunikations-App an einen Freund senden
  • Wiedergabe der nächsten Folge einer TV-Serie in einer Medien-App
  • Letzter Speicherpunkt in einer Gaming-App laden

Beispiele und Quelle

Die primäre Implementierung 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 (sogenannte versteckte APIs in ShortcutManager.java):

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

Zum Beispiel unterstützt Version 3 des Android Open Source Project Launcher Tastenkombinationen:

packages/apps/Launcher3/

Sehen Sie sich schließlich die folgenden Dateien für öffentliches Javadoc an.

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

AOSP Launcher3 unterstützt bereits Tastenkombinationen. Wenn ein Partner seine eigenen Launcher, sollte dieser auch Verknüpfungen unterstützen.

  • Wenn Nutzende eine bestimmte Geste (z.B. langes Drücken) auf ein App-Symbol ausführen, sollte im Launcher die dynamischen und Manifest-Verknüpfungen angezeigt werden, Aktivitätssymbol des Launchers.
    Die Sortierreihenfolge der Tastenkombinationen wird im ShorctutManager Javadoc in „Verknüpfung für Display-Reihenfolge“ . Beispiel: Manifest-Tastenkombinationen anzeigen und dann die dynamischen Tastenkombinationen. Die Tastenkombinationen sind nach Rang sortiert in aufsteigend sortiert sind.
  • Der Nutzer sollte in der Lage sein, jede Verknüpfung für dynamische/Manifest-Elemente zu ziehen und anzupinnen sie zum Startbildschirm.
  • Angepinnte Verknüpfungen sollten gesichert und wiederhergestellt werden. (Siehe ShortcutManager Javadoc.
  • Inline-Antwort schreiben für Benachrichtigungen sollte intern ShortcutManager.onApplicationActive aus.

Einige GMD-Apps (Google Mobile-Dienste) haben außerdem Verknüpfungen. Der OEM sollte der Launcher entsprechende Verknüpfungen anzeigen und idealerweise das Anpinnen unterstützen (oder ein Verknüpfungssymbol).

In der Launcher3-Quelle finden Sie Details zur Interaktion mit dem Framework für die oben genannten Vorgänge ausführen.

Zertifizierungsstufe

Mit den folgenden CTS-Tests (Android Compatibility Test Suite) (ShortcutManager und LauncherApps) wie vorgesehen funktioniert:

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

Die Einheitentests 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 Shortcut-Manager verwenden:

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