Raccourcis d'application

La version Android 7.1.1 permet aux développeurs de définir des raccourcis spécifiques à des actions dans leurs applications qui peuvent être affichés dans un lanceur. Ces raccourcis d'application permettent aux utilisateurs de démarrer rapidement des tâches courantes ou recommandées au sein d'une application.

Chaque raccourci fait référence à une intention qui lance une action spécifique dans l'application lorsque les utilisateurs sélectionnent le raccourci. Voici des exemples d'actions que vous pouvez exprimer sous forme de raccourcis d'application :

  • Navigation des utilisateurs vers un emplacement particulier dans une application de cartographie
  • Envoyer des messages à un ami dans une application de communication
  • Lire le prochain épisode d'une émission télévisée dans une application multimédia
  • Chargement du dernier point de sauvegarde dans une application de jeu

Exemples et source

Vous pouvez trouver l'implémentation principale de cette fonctionnalité dans les fichiers suivants :

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

Avec les fichiers suivants fournissant des fonctionnalités de prise en charge (appelées API cachées dans ShortcutManager.java ) :

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

Et, par exemple, la version 3 d'Android Open Source Project Launcher prend en charge les raccourcis :

packages/apps/Launcher3/

Enfin, consultez les fichiers suivants pour Javadoc public.

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

Mise en œuvre

L'AOSP Launcher3 prend déjà en charge les raccourcis. Dans les cas où un partenaire dispose de son propre lanceur, ce lanceur doit également prendre en charge les raccourcis.

  • Lorsque l'utilisateur effectue un certain geste (par exemple, un appui long) sur une icône d'application, le lanceur doit afficher les raccourcis dynamiques et manifestes associés à chaque icône d'activité du lanceur.
    L'ordre de tri des raccourcis est défini dans le Javadoc ShortcutManager dans la section "Ordre d'affichage des raccourcis". Par exemple, affichez d'abord les raccourcis manifestes, puis les raccourcis dynamiques. Les raccourcis sont triés par rang croissant au sein de chaque groupe.
  • L'utilisateur doit pouvoir faire glisser chaque raccourci dynamique/manifeste et « l'épingler » sur l'écran d'accueil.
  • Les raccourcis épinglés doivent être sauvegardés et restaurés. (Voir la javadoc de ShortcutManager pour plus de détails)
  • Faire une « réponse en ligne » sur la notification doit appeler en interne ShortcutManager.onApplicationActive.

De plus, certaines applications Google Mobile Services (GMS) disposent de raccourcis. Le lanceur OEM devrait afficher des raccourcis pour eux et idéalement prendre également en charge " l'épinglage " (ou la création d'une icône de raccourci).

Consultez la source Launcher3 pour plus de détails sur la façon d'interagir avec le framework pour les opérations ci-dessus.

Validation

Utilisez les tests CTS (Android Compatibility Test Suite) suivants pour vous assurer que votre version de la fonctionnalité (ShortcutManager et LauncherApps) fonctionne comme prévu :

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

Et retrouvez les tests unitaires pour l’implémentation de l’AOSP ici :

frameworks/base/services/tests/servicestests/

Qui comprend:

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

Vous pouvez également utiliser le test CTS Verifier pour le gestionnaire de raccourcis :

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