Scorciatoie applicazioni

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