Skróty do aplikacji

Wersja Androida 7.1.1 umożliwia programistom definiowanie skrótów do konkretnych działań w ich aplikacjach, które można wyświetlić w programie uruchamiającym. Te skróty do aplikacji umożliwiają użytkownikom szybkie rozpoczynanie typowych lub zalecanych zadań w aplikacji.

Każdy skrót odwołuje się do celu, który uruchamia określoną akcję w aplikacji, gdy użytkownik wybierze skrót. Przykłady działań, które możesz wyrazić jako skróty do aplikacji, obejmują:

  • Nawigowanie użytkowników do określonej lokalizacji w aplikacji mapującej
  • Wysyłanie wiadomości do znajomego w aplikacji komunikacyjnej
  • Odtwarzanie następnego odcinka programu telewizyjnego w aplikacji multimedialnej
  • Ładowanie ostatniego punktu zapisu w aplikacji do gier

Przykłady i źródło

Podstawową implementację tej funkcji można znaleźć w następujących 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 następującymi plikami zapewniającymi funkcje pomocnicze (zwane ukrytymi interfejsami API w ShortcutManager.java ):

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

I na przykład Android Open Source Project Launcher w wersji 3 obsługuje skróty:

packages/apps/Launcher3/

Na koniec zobacz następujące pliki publicznego 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

Realizacja

AOSP Launcher3 obsługuje już skróty. W przypadku, gdy partner ma własny program uruchamiający, ten program uruchamiający powinien również obsługiwać skróty.

  • Gdy użytkownik wykona określony gest (np. długie naciśnięcie) ikony aplikacji, program uruchamiający powinien wyświetlić dynamiczne i oczywiste skróty powiązane z każdą ikoną aktywności programu uruchamiającego.
    Kolejność sortowania skrótów jest zdefiniowana w dokumencie Javadoc ShorctutManager w sekcji „Kolejność wyświetlania skrótów”. Na przykład najpierw pokaż skróty manifestu, a następnie skróty dynamiczne. Skróty są sortowane według rangi w kolejności rosnącej w każdej grupie.
  • Użytkownik powinien mieć możliwość przeciągnięcia każdego skrótu dynamicznego/manifestowego i „przypięcia” go do ekranu głównego.
  • Należy utworzyć kopię zapasową przypiętych skrótów i przywrócić je. (Aby uzyskać szczegółowe informacje, zobacz dokument javadoc programu ShortcutManager)
  • Wykonanie „odpowiedzi wbudowanej” w powiadomieniu powinno wewnętrznie wywołać ShortcutManager.onApplicationActive.

Ponadto niektóre aplikacje Usług mobilnych Google (GMS) mają skróty. Program uruchamiający OEM powinien wyświetlać do nich skróty i idealnie obsługiwać także „ przypinanie ” (lub tworzenie ikony skrótu).

Zobacz źródło Launcher3, aby uzyskać szczegółowe informacje na temat interakcji ze strukturą dla powyższych operacji.

Walidacja

Skorzystaj z poniższych testów pakietu testów zgodności systemu Android (CTS), aby upewnić się, że Twoja wersja funkcji (ShortcutManager i LauncherApps) działa zgodnie z oczekiwaniami:

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

Tutaj znajdziesz testy jednostkowe dla implementacji AOSP:

frameworks/base/services/tests/servicestests/

Co zawiera:

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

Możesz także zastosować test CTS Verifier dla menedżera skrótów:

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