Fixar widgets do Resumo no app
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-26 UTC."],[],[],null,["With Android 8.0 (API level 26) and higher, you can let users pin your\nwidgets to their home screen within your app. Promoting widgets directly within\nyour app is a great way to increase user engagement, especially after a\nuser completes a related task, or when a user repeatedly accesses a feature in\nyour app.\n\nCreate a Pin Request\n\nTo initiate widget pinning, use the [`requestPinGlanceAppWidget`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager#requestPinGlanceAppWidget(java.lang.Class,androidx.glance.appwidget.GlanceAppWidget,kotlin.Any,android.app.PendingIntent)) method\nfrom the [`GlanceAppWidgetManager`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager) class. For apps running on lower versions\nof Android, this returns false. However if the request is successfully sent\nto the system, this returns true.\n\nHere is an example of how you can create a pin request:\n\n\n```kotlin\n@Composable\nfun AnInAppComposable() {\n val context = LocalContext.current\n val coroutineScope = rememberCoroutineScope()\n Button(\n onClick = {\n coroutineScope.launch {\n GlanceAppWidgetManager(context).requestPinGlanceAppWidget(\n receiver = MyWidgetReceiver::class.java,\n preview = MyWidget(),\n previewState = DpSize(245.dp, 115.dp)\n )\n }\n }\n ) {}\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/glance/GlancePinAppWidget.kt#L44-L59\n```\n\n\u003cbr /\u003e\n\nIn this example, `MyWidgetReceiver` is the class that receives the widget's\ncallbacks, and `MyWidget` is the Glance widget you want to pin. The\n`successCallback` is a `PendingIntent` that is triggered when the widget is\nsuccessfully pinned.\n\nHandle the Pin Request Response\n\nWhen a user responds to the pin request dialog, your app receives a\nresponse. If the user accepts the request, your widget is pinned to their\nhome screen, and the `successCallback` `PendingIntent` is triggered. If the\nuser denies the request, nothing happens.\n\nIt is important to note that the `successCallback` is only triggered if the\nwidget is successfully added to the home screen. It is not triggered if the user\ndenies the request or if the launcher does not support pinning."]]