Scorciatoie applicazioni

La release di Android 7.1.1 consente agli sviluppatori di definire scorciatoie specifiche per le azioni nelle loro app che possono essere visualizzate in un Avvio app. Queste scorciatoie per le app consentono agli utenti di avviare rapidamente attività comuni o consigliate all'interno di un'app.

Ogni scorciatoia fa riferimento a un'intenzione che avvia un'azione specifica nell'app quando gli utenti selezionano la scorciatoia. Ecco alcuni esempi di azioni che puoi esprimere come scorciatoie per le app:

  • Indirizzare gli utenti a una determinata località 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 di salvataggio in un'app di gioco

Esempi e origine

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, la versione 3 di Android Open Source Project Launcher supporta le scorciatoie:

packages/apps/Launcher3/

Infine, consulta i seguenti file 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. Se un partner ha il suo avviatore, questo deve supportare anche le scorciatoie.

  • Quando l'utente esegue un determinato gesto (ad es. pressione prolungata) su un'icona dell'app, il programma di avvio deve mostrare le scorciatoie dinamiche e del manifest associate a ogni icona dell'attività del programma di avvio.
    L'ordinamento delle scorciatoie è definito nel Javadoc di ShorctutManager nella sezione "Ordine di visualizzazione delle scorciatoie". Ad esempio, mostra prima le scorciatoie del manifest, poi quelle dinamiche. Le scorciatoie sono ordinate in base al ranking in ordine crescente all'interno di ciascun gruppo.
  • L'utente deve essere in grado di trascinare ogni scorciatoia dinamica/manifest e "bloccarla" nella schermata Home.
  • È necessario eseguire il backup e il ripristino delle scorciatoie bloccate. (per maggiori dettagli, consulta la documentazione javadoc di ShortcutManager)
  • L'esecuzione di una "Risposta in linea" nella notifica dovrebbe chiamare internamente ShortcutManager.onApplicationActive.

Inoltre, alcune app Google Mobile Services (GMS) hanno scorciatoie. Il programma di avvio OEM dovrebbe mostrare le scorciatoie per questi servizi e, idealmente, supportare anche la "bloccatura" (o la creazione di un'icona di scorciatoia).

Consulta il codice sorgente di Launcher3 per informazioni dettagliate su come interagire con il framework per le operazioni riportate sopra.

Convalida

Utilizza i seguenti test della suite di test di compatibilità Android (CTS) per assicurarti che la tua versione della funzionalità (ShortcutManager e LauncherApps) funzioni come previsto:

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

Qui puoi trovare i test delle unità per l'implementazione AOSP:

frameworks/base/services/tests/servicestests/

Sono inclusi:

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

Puoi anche utilizzare il test CTS Verifier per il gestore delle scorciatoie:

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