Domanda

Ecco lo scenario:

ho bisogno di scrivere un'applicazione per Android per creare una presa RFCOMM ad un PC con un dongle Bluetooth (ho intenzione di scrivere il server troppo).

Il mio requisito è che l'utente non debba dispositivo coppia manualmente.

In realtà, con un grande hack, sto usando il createInsecureRfcommSocket .

Un po 'di scenario : Ho un'applicazione Android che lo scambio di informazioni con una macchina Linux con una presa RFCOMM aperto. Posso impostare manualmente il PIN dei dispositivi (hard codifica Si tratta di un'opzione)

sto cercando strade diverse:

Scrivi una JNI involucro

Come è stato fatto qui da Max Kellermann, posso scrivere un JNI strato di rendere tutta la fase di accoppiamento. Questo dovrebbe essere una buona opzione, ma c'è un problema:

Il 4b NDK non fornisce libbluetooth librerie, non riesce così -lbluetooth, così come il v.3 NDK.

Opzioni:

  1. Trova l'NDK 1.5 (che include bluetooth lib). Dopo giorni di ricerca sul web, non sono stato in grado di scoprire. Chiunque ha o sa dove posso trovarlo?
  2. Compila libbluetooth per android da me e li usa per -lbluetooth. No fortuna lì, io non sono in grado di costruire loro. Qualsiasi suggerimento?

Usa qualcosa esposte dalle API

Uno sa come posso usare createRfcommSocketToServiceRecord che l'utente non accoppiare manualmente il dispositivo? È possibile? Come dovrei scrivere il server?

Qualcosa non so

Forse (sicuro!) C'è qualcosa che non so. Forse posso usare qualcos'altro? Non RFCOMM? SDP?

Forse posso accoppiare manualmente con l'API di Android?

Spero di essere stato abbastanza chiaro, se non basta chiedere. E ancora, in quanto non è la prima volta, sono nelle tue mani:)

Grazie per tutti i ragazzi di supporto!

È stato utile?

Soluzione

Alla fine, posso dire che non è possibile .

Anche se si trova un modo, utilizzando involucri, scrivendo moduli C e così via, l'evoluzione Android probabilmente cambierà la cosa che si sta utilizzando.

E così, non c'è alcuna opzione. Purtroppo.

vedi Let come Bluetooth Android API cambierà in futuro.

Altri suggerimenti

Il Bluetooth API di Android non è finalizzato, e il cambiamento. Utilizzare a proprio rischio. Questa classe implementa un'API per lo strato di Bluetooth RFCOMM. Una presa RFCOMM è simile ad una normale presa dal fatto che ci vuole un indirizzo e un numero di porta. La differenza è, naturalmente, che l'indirizzo è un indirizzo dispositivo Bluetooth, e il numero di porta è un canale RFCOMM. L'API consente la creazione di socket in ascolto tramite metodi bind, ascoltare e accettare, nonché per la realizzazione di connessioni in uscita con Connect, connectAsync e waitForAsyncConnect. Dopo la costruzione di una presa di corrente, è necessario creare e poi distruggere quando hai finito di usarlo. Sia creare e accettare restituire un FileDescriptor per i dati reali. In alternativa, è possibile chiamare getInputStream e getOutputStream per recuperare i rispettivi flussi senza passare attraverso il FileDescriptor.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top