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