No Android 8.0 (nível 26 da API) e versões mais recentes, é possível permitir que os usuários fixem seus widgets na tela inicial do 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 PIN
Para iniciar a fixação de widgets, use o método requestPinGlanceAppWidget
da classe GlanceAppWidgetManager. Para apps em execução em versões anteriores
do Android, ele retorna "false". No entanto, se a solicitação for enviada
ao sistema, ele vai retornar "true".
Veja 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) ) } } ) {} }
Neste exemplo, MyWidgetReceiver é a classe que recebe os callbacks do widget, e MyWidget é o widget do Resumo que você quer fixar. O
successCallback é um PendingIntent acionado 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 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 será acionado se o usuário
negar a solicitação ou se o acesso rápido não for compatível com a fixação.