Raccourcis d'application

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

Chaque raccourci fait référence à un intent qui lance une action spécifique dans l'application. lorsque les utilisateurs sélectionnent le raccourci. Exemples d'actions que vous pouvez exprimer sous forme d'application les raccourcis sont les suivants:

  • Itinéraire des utilisateurs vers un lieu spécifique dans une application de cartographie
  • Envoyer des messages à un ami dans une application de communication
  • Lire l'épisode suivant d'une série TV dans une application multimédia
  • Charger le dernier point de sauvegarde dans une application de jeu

Exemples et source

Vous trouverez la mise en œuvre 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

Les fichiers suivants fournissent les fonctionnalités complémentaires (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

Par exemple, la version 3 du lanceur de projets Android Open Source est compatible avec 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

Implémentation

AOSP Launcher 3 prend déjà en charge les raccourcis. Dans les cas où un partenaire propre lanceur, celui-ci devrait également prendre en charge les raccourcis.

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

En outre, certaines applications des services Google Mobile (GMS) disposent de raccourcis. L'OEM le lanceur d'applications doit afficher des raccourcis correspondants et, idéalement, être compatible avec l'épinglage. (ou en créant une icône de raccourci).

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

Validation

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

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

Et trouvez les tests unitaires pour l'implémentation d'AOSP ici:

frameworks/base/services/tests/servicestests/

Par exemple:

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