Con Android 8.0 (livello API 26) e versioni successive, puoi consentire agli utenti di bloccare i tuoi widget nella schermata Home all'interno della tua app. Promuovere i widget direttamente all'interno della tua app è un ottimo modo per aumentare il coinvolgimento degli utenti, soprattutto dopo che un utente ha completato un'attività correlata o quando accede ripetutamente a una funzionalità della tua app.
Crea una richiesta di PIN
Per avviare il blocco del widget, utilizza il metodo requestPinGlanceAppWidget della classe GlanceAppWidgetManager. Per le app in esecuzione su versioni precedenti di Android, restituisce false. Tuttavia, se la richiesta viene inviata correttamente al sistema, restituisce true.
Ecco un esempio di come creare una richiesta di PIN:
@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 questo esempio, MyWidgetReceiver è la classe che riceve i callback del widget e MyWidget è il widget Glance che vuoi bloccare. successCallback è un PendingIntent che viene attivato quando il widget viene fissato correttamente.
Gestisci la risposta alla richiesta di PIN
Quando un utente risponde alla finestra di dialogo della richiesta di aggiunta, la tua app riceve una risposta. Se l'utente accetta la richiesta, il widget viene fissato alla sua schermata Home e viene attivato successCallback PendingIntent. Se l'utente rifiuta la richiesta, non succede nulla.
È importante notare che l'evento successCallback viene attivato solo se il widget viene aggiunto correttamente alla schermata Home. Non viene attivato se l'utente rifiuta la richiesta o se l'Avvio app non supporta il blocco.