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. La promozione dei widget direttamente all'interno della tua app è un ottimo modo per aumentare il coinvolgimento degli utenti, soprattutto dopo che un utente completa un'attività correlata o quando un utente accede ripetutamente a una funzionalità della tua app.
Creare una richiesta di PIN
Per avviare il blocco dei widget, utilizza il metodo requestPinGlanceAppWidget
dalla classe GlanceAppWidgetManager
. Per le app in esecuzione su versioni precedenti
di Android, viene restituito false. Tuttavia, se la richiesta viene inviata correttamente
al sistema, viene restituito il valore 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
aggiunto correttamente.
Gestire la risposta alla richiesta di PIN
Quando un utente risponde alla finestra di dialogo di richiesta del PIN, la tua app riceve una
risposta. Se l'utente accetta la richiesta, il widget viene bloccato nella schermata Home e viene attivato l'intent successCallback
PendingIntent
. Se l'utente rifiuta la richiesta, non succede nulla.
È importante notare che l'successCallback
viene attivato solo se il
widget viene aggiunto correttamente alla schermata Home. Non viene attivato se l'utente
rifiuta la richiesta o se il launcher non supporta il blocco.