Glance-Widgets in der App anpinnen

Ab Android 8.0 (API-Level 26) können Sie Nutzern ermöglichen, Ihre Widgets in Ihrer App an den Startbildschirm anzupinnen. Das Bewerben von Widgets direkt in Ihrer App ist eine gute Möglichkeit, die Nutzerinteraktion zu steigern, insbesondere nachdem ein Nutzer eine entsprechende Aufgabe abgeschlossen hat oder wenn ein Nutzer wiederholt auf eine Funktion in Ihrer App zugreift.

PIN-Anfrage erstellen

Verwenden Sie zum Starten des Anpinnens von Widgets die Methode requestPinGlanceAppWidget aus der Klasse GlanceAppWidgetManager. Für Apps, die auf niedrigeren Android-Versionen ausgeführt werden, wird „false“ zurückgegeben. Wenn die Anfrage jedoch erfolgreich an das System gesendet wird, wird „true“ zurückgegeben.

Hier ist ein Beispiel für das Erstellen einer PIN-Anfrage:

@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)
                )
            }
        }
    ) {}
}

In diesem Beispiel ist MyWidgetReceiver die Klasse, die die Callbacks des Widgets empfängt, und MyWidget das Glance-Widget, das Sie anpinnen möchten. successCallback ist ein PendingIntent, das ausgelöst wird, wenn das Widget erfolgreich angepinnt wurde.

Antwort auf die Anfrage zum Anpinnen verarbeiten

Wenn ein Nutzer auf das Dialogfeld für die PIN-Anfrage reagiert, erhält Ihre App eine Antwort. Wenn der Nutzer die Anfrage akzeptiert, wird Ihr Widget auf seinem Startbildschirm angepinnt und der successCallback PendingIntent wird ausgelöst. Wenn der Nutzer die Anfrage ablehnt, passiert nichts.

Wichtig: Der successCallback wird nur ausgelöst, wenn das Widget dem Startbildschirm hinzugefügt wird. Sie wird nicht ausgelöst, wenn der Nutzer die Anfrage ablehnt oder wenn der Launcher das Anpinnen nicht unterstützt.