Visibilité des widgets

Sur les appareils équipés d'Android 8.0 (niveau d'API 26) ou version ultérieure, les lanceurs qui permettent aux utilisateurs de créer des raccourcis épinglés leur permettent également d'épingler des widgets sur leur écran d'accueil. Comme les raccourcis épinglés, ces widgets épinglés permettent aux utilisateurs d'accéder à des tâches spécifiques dans votre application et peuvent être ajoutés à l'écran d'accueil directement depuis l'application, comme illustré dans la vidéo suivante.

Exemple de mise en page responsive
Figure 2 Exemple d'épinglage d'un widget.

Autoriser les utilisateurs à épingler un widget

Dans votre application, vous pouvez créer une requête pour que le système épingle un widget à un lanceur compatible en procédant comme suit:

  1. Assurez-vous de déclarer un widget dans le fichier manifeste de votre application.

  2. Appelez la méthode requestPinAppWidget(), comme indiqué dans l'extrait de code suivant:

Kotlin

val appWidgetManager = AppWidgetManager.getInstance(context)
val myProvider = ComponentName(context, ExampleAppWidgetProvider::class.java)

if (appWidgetManager.isRequestPinAppWidgetSupported()) {
    // Create the PendingIntent object only if your app needs to be notified
    // when the user chooses to pin the widget. Note that if the pinning
    // operation fails, your app isn't notified. This callback receives the ID
    // of the newly pinned widget (EXTRA_APPWIDGET_ID).
    val successCallback = PendingIntent.getBroadcast(
            /* context = */ context,
            /* requestCode = */ 0,
            /* intent = */ Intent(...),
            /* flags = */ PendingIntent.FLAG_UPDATE_CURRENT)

    appWidgetManager.requestPinAppWidget(myProvider, null, successCallback)
}

Java

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName myProvider = new ComponentName(context, ExampleAppWidgetProvider.class);

if (appWidgetManager.isRequestPinAppWidgetSupported()) {
    // Create the PendingIntent object only if your app needs to be notified
    // when the user chooses to pin the widget. Note that if the pinning
    // operation fails, your app isn't notified. This callback receives the ID
    // of the newly pinned widget (EXTRA_APPWIDGET_ID).
    PendingIntent successCallback = PendingIntent.getBroadcast(
            /* context = */ context,
            /* requestCode = */ 0,
            /* intent = */ new Intent(...),
            /* flags = */ PendingIntent.FLAG_UPDATE_CURRENT);

    appWidgetManager.requestPinAppWidget(myProvider, null, successCallback);
}

Les utilisateurs découvrent et ajoutent votre widget via le sélecteur de widgets ou depuis votre application lorsque la fonctionnalité du widget est la plus pertinente. Pour en savoir plus, consultez Découverte et promotion.