Like here: Automatic authentication for Android WiFi Direct I want to create a mobile ad-hoc Wifi network with Android devices.
But unlike the linked question above I want to use the official Android WiFi Direct API which is availabe since Android 4.0.
So is there a way to not only connect 2 devices via WiFi Direct but also three or more? So messages could be passed from one device to another using several other devices in between (therefore spanning a larger distance between the sender and receiver)?
The Wifi Direct demo only works for pairing two devices and I could not find a way to do anything else.
Is there a way to not only connect 2 devices via WiFi Direct but also three or more?
Yes, the Wi-Fi Direct specifications explain it is possible to create a 1 to many connection. One of the devices will act as a group owner (think it as an access point).
I have been able to create a Wi-Fi Direct network with 3 devices during some tests.
As all the devices have to be in the range of the group owner, you are sure that your message will arrive to the second client.
1st client -> group owner -> 2nd client
Yes,there are no limits as such. We have experimented with 5-6 devices – beyond that, it wont scale very well at the moment.
Here is a video of tapestry on JellyBean – http://www.youtube.com/watch?v=6emgRvH4mTo&list=UUQmz9albYeqArJvmpmaQpGQ&index=1&feature=plcp
You can do so using Java NIO (Non Blocking IO)
There is also an option in Wifi Direct to create group, using that group, group own will be used as a server and can broadcast message.
Using multiple clients and a Server, all devices can communicate with each other by utilizing group.
To connect another device to p2p group:
on GO device type:
sudo wpa_cli wps_pbc
and on the new device u want to join:
sudo wpa_cli p2p_connect <GO-MAC-address> pbc join