Com o Android 8.0 (nível da API 26) e versões mais recentes, você pode permitir que os usuários fixem seus widgets na tela inicial dentro do app. Promover widgets diretamente no app é uma ótima maneira de aumentar o engajamento do usuário, especialmente depois que um usuário conclui uma tarefa relacionada ou quando um usuário acessa repetidamente um recurso no app.
Criar uma solicitação de PIN
Para iniciar a fixação de widgets, use o método requestPinGlanceAppWidget
da classe GlanceAppWidgetManager
. Para apps executados em versões anteriores do Android, isso retorna "false". No entanto, se a solicitação for enviada ao sistema, isso vai retornar "true".
Confira um exemplo de como criar uma solicitação de 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) ) } } ) {} }
Neste exemplo, MyWidgetReceiver
é a classe que recebe os
callbacks do widget, e MyWidget
é o widget do Glance que você quer fixar. O
successCallback
é um PendingIntent
que é acionado quando o widget é
fixado com sucesso.
Processar a resposta da solicitação de fixação
Quando um usuário responde à caixa de diálogo de solicitação de PIN, seu app recebe uma
resposta. Se o usuário aceitar a solicitação, o widget será fixado na tela
inicial, e o successCallback
PendingIntent
será acionado. Se o
usuário negar a solicitação, nada vai acontecer.
É importante observar que o successCallback
só é acionado se o
widget for adicionado à tela inicial. Ele não é acionado se o usuário
negar a solicitação ou se a tela de início não permitir a fixação.