Skróty do aplikacji

Wersja Androida 7.1.1 umożliwia deweloperom definiowanie w aplikacjach skrótów do określonych działań, które mogą być wyświetlane w Menu z aplikacjami. Te skróty aplikacji umożliwiają użytkownikom szybkie uruchamianie typowych lub zalecanych zadań w aplikacji.

Każdy skrót odwołuje się do intencji, która uruchamia określone działanie w aplikacji, gdy użytkownicy wybiorą skrót. Przykłady działań, które możesz wykonać za pomocą skrótów aplikacji:

  • Przekierowywanie użytkowników do określonej lokalizacji w aplikacji do mapowania
  • Wysyłanie wiadomości do znajomego w aplikacji do komunikacji
  • odtwarzanie następnego odcinka programu w aplikacji multimedialnej;
  • wczytywanie ostatniego punktu zapisu w aplikacji do gier;

Przykłady i źródło

Podstawowe wdrożenie tej funkcji znajdziesz w tych plikach:

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

z tymi plikami, które zapewniają funkcje pomocnicze (w ShortcutManager.java nazywane ukrytymi interfejsami API):

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

Na przykład aplikacja Launcher z projektu Android Open Source w wersji 3 obsługuje skróty:

packages/apps/Launcher3/

Poniżej znajdziesz publiczne pliki Javadoc.

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

Implementacja

AOSP Launcher3 obsługuje już skróty. Jeśli partner ma własną aplikację uruchamiającą, powinna ona też obsługiwać skróty.

  • Gdy użytkownik wykona określony gest (np. długie naciśnięcie) na ikonie aplikacji, w wyświetlaczu powinna pojawić się dynamiczna skróty z pliku manifestu powiązane z każdą ikoną aktywności w wyświetlaczu.
    Kolejność sortowania skrótów jest zdefiniowana w interfejsie Javadoc usługi ShorctutManager w sekcji „Kolejność wyświetlania skrótów”. Możesz na przykład najpierw wyświetlić skróty w pliku manifestu, a potem skróty dynamiczne. Skróty są sortowane według pozycji w kolejności rosnącej w ramach każdej grupy.
  • Użytkownik powinien mieć możliwość przeciągnięcia każdego skrótu dynamicznego lub pliku manifestu i przypięcia go do ekranu głównego.
  • Przypięte skróty powinny zostać skopiowane i przywrócone. (szczegóły znajdziesz w dokumentacji ShortcutManager)
  • Odpowiedź w ramach powiadomienia powinna wewnętrznie wywoływać ShortcutManager.onApplicationActive.

Dodatkowo niektóre aplikacje usług mobilnych Google (GMS) mają skróty. Launcher OEM powinien wyświetlać skróty do nich i w najlepszym przypadku obsługiwać „przypinanie” (lub tworzenie ikony skrótu).

Szczegółowe informacje o interakcji z ramami dla powyższych operacji znajdziesz w źródle Launcher3.

Weryfikacja

Aby mieć pewność, że wersja funkcji (ShortcutManager i LauncherApps) działa zgodnie z oczekiwaniami, wykonaj te testy Compatibility Test Suite (CTS) Androida:

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

Testy jednostkowe implementacji AOSP znajdziesz tutaj:

frameworks/base/services/tests/servicestests/

Obejmuje to:

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

Możesz też użyć testu CTS Verifier dla menedżera skrótów:

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