Android WiFi Direct WIFI_P2P_PEERS_CHANGED_ACTION jamais reçu

J'essaie de faire un jeu multijoueur pour Android via WiFi directement. J'ai suivi les instructions sur http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html afin de vous connecter aux périphériques.

Le ActionListener que j'utilise avec discoverPeers() retourne avec succès, mais je ne reçois jamais l'intention WIFI_P2P_PEERS_CHANGED_ACTION sur laquelle j'appellerais requestPeers() . Curieusement, lorsque je passe dans les réglages directs du WiFi sur un seul appareil, l'autre est capable de le détecter avec succès à travers mon application. Dois-je rendre mon appareil détectable dans mon application ou quelque chose comme ça? Je n'ai rien trouvé pour indiquer que dans les ressources de développeur Android concernant WiFi P2P. Il y a WiFi direct pour la découverte du service, mais c'est quelque chose d'autre, n'est-ce pas?

  • Comment puis-je partager l'écran sur une autre base de périphérique sur la connexion directe WiFi?
  • WiFi direct (Android 4.0) avec plusieurs (3 +) appareils
  • Comment puis-je partager l'écran sur une autre base de périphérique sur la connexion directe WiFi?
  • WiFi direct (Android 4.0) avec plusieurs (3 +) appareils
  • 4 Solutions collect form web for “Android WiFi Direct WIFI_P2P_PEERS_CHANGED_ACTION jamais reçu”

    Vous devez exécuter discoverPeers() sur d'autres périphériques aussi.
    Maintenant, vous recevrez l'intention WIFI_P2P_PEERS_CHANGED_ACTION

    Avez-vous ajouté WIFI_P2P_PEERS_CANGED_ACTION dans votre filtre d'intention de récepteur de diffusion? Nous avons besoin de plus d'informations pour vous aider.

    Vous devez trouver des périphériques sous Paramètres / Wifi / Direct Wifi / Dispositifs disponibles

    J'ai rencontré le même problème que vous.

    Dans ce cas, deux facteurs contribueraient à ce problème. D'abord, l'événement n'a jamais eu lieu et ne s'est pas diffusé à d'autres. Et deuxièmement, bien que l'événement ait eu lieu, le filtre intention ne l'attrape pas.

    Dans mon cas, j'ai constaté que le destinataire n'obtient pas l'événement correctement. La raison en était parce que je ne me suis pas enregistré sur le filtre intentionnel correctement.

    Après moi

     intentFilter.addAction(WifiP2PManager.WIFI_P2P_PEERS_CHANGED_ACTION), 

    Je n'ai pas fait

     ct.registerReceiver(bReceiver, intentFilter). 

    Ct est l'activité ou le contexte, et bReceiver est WifiDirectBroadcastReceiver. J'ai d'abord écrit

     ct.registerReceiver(bReceiver, intentFilter), 

    Mais, il n'a pas été exécuté correctement.

    J'espère que cela vous aide

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.