La release Android 7.1.1 consente agli sviluppatori di definire impostazioni scorciatoie nelle loro app che possono essere visualizzate in Avvio app. Queste app consentono agli utenti di avviare rapidamente attività comuni o consigliate all'interno di un dell'app.
Ogni scorciatoia fa riferimento a un intent che avvia un'azione specifica nell'app quando gli utenti selezionano la scorciatoia. Esempi di azioni che puoi esprimere come app le scorciatoie includono:
- Navigazione degli utenti verso una località specifica in un'app di mappatura
- Invio di messaggi a un amico in un'app di comunicazione
- Riproduzione della puntata successiva di un programma TV in un'app multimediale
- Caricamento dell'ultimo punto salvataggio in un'app di gioco
Esempi e fonte
Puoi trovare l'implementazione principale di questa funzionalità nei seguenti file:
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
Con i seguenti file che forniscono funzionalità di supporto (chiamate API nascoste in
ShortcutManager.java
):
packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
Ad esempio, Avvio app open source di Android versione 3 supporta scorciatoie:
packages/apps/Launcher3/
Infine, vedi i file seguenti per il Javadoc pubblico.
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
Implementazione
AOSP Launcher3 supporta già le scorciatoie. Nei casi in cui un partner abbia i suoi proprio Avvio app, che dovrebbe supportare anche le scorciatoie.
- Quando l'utente esegue un determinato gesto (ad esempio una pressione prolungata) sull'icona di un'app,
nell'Avvio app dovrebbero essere visualizzate le scorciatoie dinamiche e manifest associate a ogni
Icona Attività in Avvio applicazioni.
L'ordinamento delle scorciatoie è definito nel Javadoc di ShorctutManager all'interno di "Ordine di visualizzazione delle scorciatoie" . Ad esempio, mostra le scorciatoie per i file manifest quindi le scorciatoie dinamiche. Le scorciatoie sono ordinate per ranking in in ordine crescente all'interno di ogni gruppo. - L'utente deve essere in grado di trascinare ogni scorciatoia dinamica/manifest e "fissare" questo elemento alla schermata Home.
- È necessario eseguire il backup e il ripristino delle scorciatoie fissate. (vedi ShortcutManager javadoc per i dettagli)
- Eseguire una "Risposta in linea" su Notifica deve chiamare internamente su ShortcutManager.onApplicationActive.
Inoltre, alcune app Google Mobile Services (GMS) hanno scorciatoie. L'OEM Avvio app dovrebbe mostrare le relative scorciatoie e supportare idealmente il "blocco" (o la creazione un'icona di scorciatoia).
Consulta il codice sorgente Launcher3 per dettagli su come interagire con il framework per le operazioni sopra descritte.
Convalida
Utilizza i seguenti test CTS (Android Compatibility Test Suite) per assicurarti che della funzionalità (ShortcutManager e LauncherApps) funziona come previsto:
cts/tests/tests/shortcutmanager/ cts/hostsidetests/shortcuts/
E trova qui i test delle unità per l'implementazione AOSP:
frameworks/base/services/tests/servicestests/
tra cui:
src/com/android/server/pm/ShortcutManagerTest*.java
Puoi anche utilizzare il test di verifica CTS per la gestione scorciatoie:
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java