Skróty do aplikacji

Android 7.1.1 umożliwia programistom określanie skrótów w aplikacjach, które można wyświetlić w programie uruchamiającym. Te aplikacje pozwalają użytkownikom szybko uruchamiać typowe lub zalecane zadania .

Każdy skrót odwołuje się do intencji, która uruchamia określone działanie w aplikacji gdy użytkownik wybierze skrót. Przykłady działań, które możesz wyrazić jako aplikacja skróty:

  • Nawigowanie użytkowników do określonej lokalizacji w aplikacji do tworzenia map
  • Wysyłanie wiadomości do znajomego w aplikacji do komunikacji
  • Odtwarzanie następnego odcinka programu telewizyjnego w aplikacji do multimediów
  • Wczytanie ostatniego punktu zapisu w grze mobilnej

Przykłady i źródło

Podstawową implementację 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

W poniższych plikach zapewniających funkcje pomocnicze (nazywane ukrytymi interfejsami API w językach: ShortcutManager.java):

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

Na przykład Menu z aplikacjami Android Open Source w wersji 3 obsługuje skróty:

packages/apps/Launcher3/

Przejrzyj poniższe pliki publicznych dokumentów 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. W przypadku, gdy partner ma który ma własny launcher, powinien on też obsługiwać skróty.

  • Gdy użytkownik wykona określony gest (np. przytrzymasz) ikonę aplikacji, Menu z aplikacjami powinno pokazywać skróty dynamiczne i skróty w pliku manifestu powiązane z każdym ikonę aktywności programu uruchamiającego.
    Kolejność sortowania skrótów jest określona w pliku Javadoc ShorctutManager w: Kolejność wyświetlania skrótów . Na przykład pokaż skróty w pliku manifestu a potem dynamiczne skróty. Skróty są sortowane według pozycji rosnąco.
  • Użytkownik powinien mieć możliwość przeciągnięcia każdego skrótu dynamicznego/manifestu i „przypięcia” jego na ekran główny.
  • Należy utworzyć kopię zapasową przypiętych skrótów i je przywrócić. (Patrz: javadoc).
  • Wysyłanie odpowiedzi w tekście on Notification powinien wywoływać wewnętrzny ShortcutManager.onApplicationActive.

Oprócz tego niektóre aplikacje Usług mobilnych Google (GMS) mają skróty. OEM program uruchamiający powinien pokazywać skróty do nich i najlepiej obsługiwać „przypinanie”. (lub utworzenie ikonę skrótu).

Szczegółowe informacje o korzystaniu z platformy znajdziesz w źródle Launcher3 powyższych operacji.

Weryfikacja

Skorzystaj z następujących testów z pakietem Android Compatibility Test Suite (CTS) i sprawdź, czy Twój zgodnie z oczekiwaniami.

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

Tutaj znajdziesz testy jednostkowe implementacji AOSP:

frameworks/base/services/tests/servicestests/

Co obejmuje:

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

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

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