> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lidar com a perda do controle

> Lidar com a perda do controle

Ter um controle associado a um usuário é fundamental para a maioria dos jogos. Quando o
jogo perde todos esses controles de um usuário (por exemplo, a bateria acabou), a
abordagem padrão para um jogo de um jogador é pausá-lo e mostrar uma caixa de diálogo
pedindo que o usuário ligue um controle.

Usando a função [XUserFindControllerForUserWithUiAsync](https://docs.xbox.com/pt-BR/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiasync.md),
os jogos podem melhorar essa experiência. Essa função recebe um XUserHandle
como entrada e mostra uma caixa de diálogo:

\<\<Gamer>>, você precisa de um controle para este jogo.
Pressione e segure A para confirmar o controle que deseja usar

Depois que o usuário confirmar o controle, o jogo poderá chamar
[XUserFindControllerForUserWithUiResult](https://docs.xbox.com/pt-BR/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiresult.md)
para obter o APP\_LOCAL\_DEVICE\_ID do controle escolhido. Mais importante, esse
controle agora está associado a esse usuário. Se esse usuário pressionar o botão Nexus,
o Guia do XBOX mostrará as informações desse usuário no Guia.

Observe que o jogador pode cancelar essa caixa de diálogo sem selecionar um controle, e o título deve lidar com esse cancelamento adequadamente.  Por exemplo, um título pode chamar repetidamente [XUserFindControllerForUserWithUiAsync](https://docs.xbox.com/pt-BR/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiasync.md) para forçar uma seleção, ou pode retornar à tela de título, já que não há mais um mapeamento de usuário/controle, ou adotar algum outro comportamento que faça sentido para o título.

Observe também que, com esse processo, os usuários podem ser associados a controles que estavam associados anteriormente a outros usuários no jogo. Isso ocorre por design.

Sempre que a associação entre um usuário e um controle mudar, haverá um
[XUserDeviceAssociationChangedCallback](https://docs.xbox.com/pt-BR/reference/system/xuser/functions/xuserdeviceassociationchangedcallback.md).
Observação: esse evento também será disparado com o emparelhamento bem-sucedido de usuário e controle
resultante da chamada de
[XUserFindControllerForUserWithUiAsync](https://docs.xbox.com/pt-BR/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiasync.md).

## Confira também

[XUserFindControllerForUserWithUiAsync](https://docs.xbox.com/pt-BR/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiasync.md)


## Related topics

- [Usuários](https://docs.xbox.com/pt-BR/build/core-features/common/user/user-toc.md)
- [Identidade do usuário e APIs XUser no GDK](https://docs.xbox.com/pt-BR/build/core-features/common/user/index.md)
- [XR074 Perda de conectividade com os serviços do XBOX e de parceiros](https://docs.xbox.com/pt-BR/publishing/certification/fma/xr-074.md)
- [Como lidar com vários logins do PlayFab](https://docs.xbox.com/pt-BR/services/playfab/identity/player-identity/login/multiple-logins.md)
- [Práticas recomendadas para lidar com o jogo offline](https://docs.xbox.com/pt-BR/services/xbox-services/develop/best-practices/live-best-practices-offline-play.md)
