2012-07-30 19 views
9

È possibile consentire a un dispositivo Android (> 4.0) di stabilire una connessione WiFi-Direct con un dispositivo Mac OS o Windows?Comunicazione WiFi-Direct tra Mac/Windows e Android

+0

possibile duplicato di [messaggio broadcast da PC desktop a dispositivo Android tramite connettività WIFI] (http://stackoverflow.com/questions/6757665/broadcast-message-from-desktop-pc-to-android-device-using- connettività wifi) – slayton

+0

non è WiFi Direct, ma è perfetto per condividere contenuti da Android con esso: [Condividi via HTTP | F-Droid - Repository app Android gratuito e open source] (https://f-droid.org/en/packages/com.MarcosDiez.shareviahttp/) – eapo

risposta

5

Secondo il Wifi-Direct Docs Il protocollo consente:

Android 4.0 (API livello 14) o dispositivi successivi con l'hardware appropriato per collegare direttamente tra loro tramite Wi-Fi

doesn sembra che Google fornisca questa funzionalità tramite l'API. Anche se WiFi-Direct non è un protocollo proprietario e potrebbe essere implementato per qualsiasi piattaforma. Ci sono un paio di posti in giro per il web di persone che cercano di ottenere Wifi-Direct operanti sotto le finestre:

-6

Tutto ciò che serve è usare java.net.Socket. Dipende da cosa intendi stabilendo una connessione diretta. La connessione TCP viene stabilita quando sul dispositivo di destinazione (Windows o Mac) si apre il socket di ascolto da ServerSocket. Su altri dispositivi è possibile utilizzare Socket con l'indirizzo di destinazione. Ovviamente, windows o mac box dovranno necessariamente aprire quella porta nel firewall.

Immagino che cosa sia effettivamente necessario sapere come ottenere il nome del computer di destinazione o come scoprire i computer sulla rete locale. Sfortunatamente, non dipende dalla versione di Android, penso. Dovresti controllare lo http://en.wikipedia.org/wiki/Zero_configuration_networking su alcuni suggerimenti. Temo che potrebbe esserci un problema nel bisogno di aprire la porta privilegiata su Android, dato che normalmente devi essere root per questo. E questo richiederebbe Android radicato.

Naturalmente dovresti specificare cosa intendi con quella connessione diretta e quale software ti serve. Se entrambe le estremità hanno la tua applicazione, puoi semplicemente aprire qualsiasi porta non allocata e non prevista su Android. Utilizzare UDP per trasmettere periodicamente il nome del dispositivo Android (chiedere all'utente di inserire il nome del proprio dispositivo). Usa multicast per inviare richieste e ricevere risposte allo stesso modo. L'invio e la ricezione multicast richiederebbero la tua applicazione su android, su windows e su mac anche. Ora puoi leggere dall'applicazione multicast che tipo di macchina è, e quale porta locale ha lasciato aperta per la tua connessione diretta. Dalla fonte del messaggio udp sai dove connetterti.

È possibile utilizzare alcuni framework per accelerare le cose. Tutto ciò richiede una certa conoscenza del networking, ma non conosco una soluzione più semplice e funzionante. A meno che non forniate dettagli su quale sia la vostra connessione diretta da fare.

+0

La presa deve essere stabilita solo su una connessione WiFi-Direct esistente . E questo è quello che sto chiedendo, non la connessione socket. –

+0

L'OP non sta chiedendo come configurare una connessione tipo TCP su una rete già stabilita. Piuttosto, l'OP vuole sapere come utilizzare il protocollo WiFi-Direct per stabilire una nuova connessione di rete tra un computer e un dispositivo Android. – slayton