Épingler des widgets Aperçu dans l'application

Avec Android 8.0 (niveau d'API 26) ou version ultérieure, vous pouvez autoriser les utilisateurs à épingler vos widgets sur leur écran d'accueil dans votre application. La promotion des widgets directement dans votre application est un excellent moyen d'accroître l'engagement des utilisateurs, en particulier après qu'ils ont effectué une tâche associée ou lorsqu'ils accèdent de manière répétée à une fonctionnalité de votre application.

Créer une demande d'épinglage

Pour lancer l'épinglage d'un widget, utilisez la requestPinGlanceAppWidget méthode de la GlanceAppWidgetManager classe. Pour les applications exécutées sur des versions antérieures d'Android, cette méthode renvoie la valeur "false". Toutefois, si la requête est envoyée au système, elle renvoie la valeur "true".

Voici un exemple de création d'une demande d'épinglage :

@Composable
fun AnInAppComposable() {
    val context = LocalContext.current
    val coroutineScope = rememberCoroutineScope()
    Button(
        onClick = {
            coroutineScope.launch {
                GlanceAppWidgetManager(context).requestPinGlanceAppWidget(
                    receiver = MyWidgetReceiver::class.java,
                    preview = MyWidget(),
                    previewState = DpSize(245.dp, 115.dp)
                )
            }
        }
    ) {}
}

Dans cet exemple, MyWidgetReceiver est la classe qui reçoit les rappels du widget, et MyWidget est le widget Glance que vous souhaitez épingler. successCallback est un PendingIntent qui est déclenché lorsque le widget est épinglé.

Gérer la réponse à la demande d'épinglage

Lorsqu'un utilisateur répond à la boîte de dialogue de la demande d'épinglage, votre application reçoit une réponse. Si l'utilisateur accepte la requête, votre widget est épinglé sur son écran d'accueil et le PendingIntent successCallback est déclenché. Si l'utilisateur refuse la requête, rien ne se passe.

Il est important de noter que successCallback n'est déclenché que si le widget est ajouté à l'écran d'accueil. Il n'est pas déclenché si l'utilisateur refuse la requête ou si le lanceur n'est pas compatible avec l'épinglage.