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 le montre la vidéo suivante.
Autoriser les utilisateurs à épingler un widget
Dans votre application, vous pouvez créer une requête pour que le système épingle un widget sur un lanceur compatible en procédant comme suit:
Assurez-vous de déclarer un widget dans le fichier manifeste de votre application.
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); }
Conseils de conception associés
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 la section Découverte et promotion.