2012-02-09 17 views
17

In Android ICS, viene fornita l'API Wireless P2P (WiFi Direct).Autenticazione automatica per Android WiFi Direct

Ho provato a sviluppare un'applicazione che può collegare automaticamente 2 telefoni tramite Wireless P2P se l'indirizzo MAC corrisponde.

dalla documentazione SDK, devo seguenti fasi:

  1. Accendere WiFi Direct da Impostazione.
  2. Inizializza connessione P2P. - initialize()
  3. Scopri Peer. - discoverPeers()
  4. Verificare se l'indirizzo MAC corrisponde.
  5. Connessione al peer rilevato. - connect()

Una volta che viene chiamata l'API connect(), il telefono Farside aprirà una finestra di dialogo di autenticazione. (A seconda di WifiP2pConfig)

C'è comunque un collegamento automatico, senza che Farside faccia il popup del dialogo?

+0

Ho lo stesso problema, non so perché non hanno implementato un'opzione per questo nelle Impostazioni. –

risposta

15

Sembra che l'automazione delle finestre di autenticazione non sia possibile, e questo rende impossibile l'instradamento p2p. Al momento, la classe WpsInfo (che viene utilizzata nella classe WiFiP2pConfig che viene passata alla funzione connect() di WiFiP2pManager durante la connessione peer) visualizza solo le finestre di autenticazione in quattro modi: DISPLAY/KEYPAD/LABEL/PBC. Credo che PBC (pulsante di configurazione) sia l'impostazione predefinita ed è ciò a cui si fa riferimento. Le altre tre opzioni richiedono all'utente di inserire un tipo di pin, rendendolo ancora più inutilizzabile per le connessioni automatizzate. Forse se dovessimo trovare il tipo di questa classe di finestre di autenticazione, potremmo automatizzare il clic del pulsante 'ok'?

Vorrei aggiungere una nuova opzione che darebbe all'applicazione la possibilità di autenticare una connessione, piuttosto che l'utente. Questa autenticazione basata sull'utente sembra essere stata trasferita dall'api bluetooth e limita fortemente l'utilità del wifi diretto. Forse la gente di Google potrebbe aiutarci?

+0

L'autenticazione automatica è un rischio per la sicurezza. Un utente malintenzionato potrebbe eseguire la connessione automatica a un telefono "innocente" senza concessioni di utenti. – hengsti

1

Nel frattempo la situazione è cambiata. È possibile creare una connessione diretta wifi completamente automatica utilizzando creategroup() di WifiP2pManager e recuperare la password generata in modo casuale e SSID con onGroupInfoAvailable(), vedere this description con example code.

Problemi correlati