Widgets et raccourcis

La nouvelle API de flux pour ajouter des raccourcis et des widgets dans Android 8.0 permet aux développeurs d'applications d'ajouter des raccourcis et des widgets depuis l'application au lieu de s'appuyer sur la barre des widgets. Pour des raisons de sécurité, l'ancienne méthode (l'envoi d'une diffusion) d'ajout de raccourcis est également abandonnée.

Les lanceurs doivent prendre en charge cette nouvelle implémentation afin que les développeurs d'applications puissent s'appuyer sur le système pour ajouter leur raccourci ou leur widget.

Exemples et source

Les documents sont disponibles dans différentes classes système. Les références incluent les éléments suivants:

  • ShortcutManager.java
    Publiez la section "Raccourcis épinglés" dans l'en-tête.
  • Intent.java
    Javadoc pour ACTION_CREATE_SHORTCUT.
  • AppWidgetManager.java
    Javadoc pour requestPinAppWidget.

Implémentation

Les implémentateurs d'appareils doivent ajouter une activité dans leur lanceur avec des actions de filtre d'intent:

  • android.content.pm.action.CONFIRM_PIN_SHORTCUT
  • android.content.pm.action.CONFIRM_PIN_APPWIDGET

Pour en savoir plus, consultez la documentation de l'API.

Cette activité doit afficher une invite de confirmation à l'utilisateur pour ajouter le widget/raccourci demandé. Une fois l'utilisateur ayant accepté, le widget/raccourci correspondant doit être ajouté à l'écran d'accueil.

Dans le cas des widgets, l'appel accept() doit inclure l'ID du widget nouvellement ajouté.

Implémenter une UI du système

Les partenaires doivent mettre à jour leur application de lanceur en utilisant l'implémentation Launcher3 (packages/apps/Launcher3) comme référence.

Recherchez les modifications Launcher3 pertinentes dans le projet Android Open Source (AOSP):

Validation

Pour valider la fonctionnalité, essayez d'ajouter des raccourcis depuis Chrome ou l'application Contacts, et vérifiez qu'une invite de confirmation appropriée s'affiche. Une fois l'acceptation effectuée, l'icône doit être ajoutée à l'écran d'accueil, et Chrome doit afficher une notification de réussite.