2017-05-19 18 views
-1

Je connecte deux appareils en utilisant le wifi p2p d'Android. J'aimerais savoir s'il existe un moyen pour les deux appareils de connaître le nom de l'autre lorsque la connexion est établie. Lorsque l'appareil lance la demande de connexion, c'est facile car vous choisissez l'homologue dans la liste afin de voir le nom. La question est le focus sur l'appareil qui reçoit la demande de connexion !!!Comment obtenir le nom de l'appareil de votre PEER en utilisant WifiP2P dans Android

Je suppose que cela doit être possible puisque la première fois que vous essayez de vous connecter, vous voyez une fenêtre contextuelle avec le nom du pair pour accepter la connexion. Mais je ne sais pas où cette information peut être trouvée lors de la programmation d'une application.

Je suppose qu'il doit être stocké dans NetworkInfo (lorsque vous avez reçu un changement d'état) ou dans WifiP2pInfo (lorsque les informations de connexion sont disponibles).

Répondre

0

Il y a la méthode requestConnectionInfo par ce que vous pouvez obtenir toutes les informations sur deivce connectés mettre en œuvre simplement cette fois la connexion établie comme ci-dessous

wifiManager.requestConnectionInfo(wifichannel, new WifiP2pManager.ConnectionInfoListener() { 
     @Override 
     public void onConnectionInfoAvailable(WifiP2pInfo info) { 
     //by info you can get host address and isGroupowner or else information you to 
implement your code after this 
} 
+0

J'ai déjà cette fonction, j'ai dit que les informations dont j'ai besoin devraient provenir de WifiP2pInfo, comme vous l'avez indiqué dans votre code. Mais je ne sais pas quel attribut de WifiP2pInfo me donnera ça. Les champs de WifiP2pInfo sont groupFormed, groupOwnerAddress et isGroupOwner. Donc pas d'info sur le pair. – BlueMountain

+0

ce que vous voulez adresse de l'hôte ou votre propre adresse –

+0

Je veux le nom de pair. Mais si cela ne peut pas être, l'adresse est correcte. – BlueMountain

2

Lorsque vous recevez l'émission de WIFI_P2P_CONNECTION_CHANGED_ACTION, si vous êtes sur le niveau de l'API 18 ou supérieur , il y a un extra dans l'intention, appelé EXTRA_WIFI_P2P_GROUP.

EXTRA_WIFI_P2P_GROUP

Ce retourne un WifiP2pGroup sur lequel vous pouvez appeler getClientList(). Cela vous donne une collection de WifiP2pDevices. Une fois que vous avez un WifiP2pDevice vous pouvez simplement obtenir le champ "deviceName".