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