El estado de WifiP2pDevice permanece en INVITADO después de la invitación directa de Wifi

Estoy programando un juego Wifi Direct, pero me he encontrado con un problema con el estado WifiP2pDevice cuando un usuario rechaza la invitación a unirse a la conexión.

  1. El teléfono A inicia la conexión con el teléfono B
  2. El estado del teléfono B se convierte en INVITADO (como se muestra en el teléfono A)
  3. Teléfono B declinación de la invitación del teléfono A
  4. El estado del teléfono B todavía está INVITADO (como se muestra en el teléfono A)

¿No debería cambiarse el estado de nuevo a DISPONIBLE como se muestra en el teléfono A? He actualizado la lista de dispositivos disponibles, pero el estado permanece sin cambios. incluso si reinicio la aplicación, todavía muestra el estado del teléfono B como invitado?

¿Se supone que esto suceda basado en el API de WifiDirect? ¿O me estoy perdiendo algo?

Editar: Más información

En el BroadcastReciever, cuando la intención es WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION, el administrador solicita a los compañeros utilizando un fragmento que implementa un PeerListListener, que simplemente imprime una lista de dispositivos disponibles e información (incluido el estado) de esos dispositivos. Así que cuando el teléfono A envía una invitación con manager.connect () cambia el estado a INVITADO. Pero si el teléfono B declina, el estado sigue siendo INVITADO. Y esos estados se activan en un notifyDataSetChanged (). No es tanto una pregunta sobre el código, sino cómo wifi directo determina y cambia el estado de los dispositivos. Pero puedo proporcionar código si es necesario.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.