2012-09-24 14 views
50

Qualcuno può darmi dei collegamenti o dei suggerimenti per l'esercitazione di comunicazione per Android Bluetooth? Si prega di non dirmi di fare riferimento all'esempio BluetoothChat, posso solo capire come scoprire e connettersi ai dispositivi ma non so come inviare e ricevere i dati tramite Bluetooth.Esempio Bluetooth Android

Attualmente sto lavorando su un progetto di dispositivo Android e incorporato Bluetooth. Please help me out ..

+2

È possibile basare esempio BluetoothChat per inviare i dati sopra. Se si guarda il codice, la stringa del messaggio viene convertita in byte [] prima di essere inviata tramite bluetooth. Quindi converti i tuoi dati in byte [] e poi invialo. –

+0

Esempio di chat IMHO è buono solo per la chat o una comunicazione un po 'più veloce .. Quando è necessario inviare 100+ messaggi al secondo non sono sicuro che sia utile. – Ewoks

risposta

5

la pagina degli sviluppatori Android ha tutorials e spiega come utilizzare la funzione Bluetooth:
Spero che questo aiuta.

+7

Ho attraversato questo posso scoprire i dispositivi, collegarli ma come inviare e ricevere dati su BT? – Pratik

9

Ho anche utilizzare secondo collegamento come gli altri ti hanno suggerito per la comunicazione Bluetooth.

http://developer.android.com/guide/topics/connectivity/bluetooth.html

Il fatto è che tutto ciò che serve è una classe BluetoothChatService.java

questa classe ha seguito le discussioni:

  1. Accetta
  2. Collegamento
  3. Connected

Ora quando si chiama la funzione di avvio della BluetoothChatService come:

mChatService.start(); 

Si inizia accettare thread che significa che sarà iniziare la ricerca di connessione.

Ora, quando si chiama

mChatService.connect(<deviceObject>,false/true); 

Qui primo argomento è oggetto di periferica che si può ottenere dalla lista dei dispositivi associati o quando si esegue la scansione per i dispositivi si ottengono tutti i dispositivi della gamma è possibile passare l'oggetto a questo la funzione e il secondo argomento sono booleani per creare connessioni sicure o non sicure.

connect la funzione inizierà il collegamento del thread che cercherà qualsiasi dispositivo che sta eseguendo accetta thread.

Quando un tale dispositivo si trova sia accetta filo e filo di collegamento chiamerà funzione connessa in BluetoothChatService:

connected(mmSocket, mmDevice, mSocketType); 

questo metodo inizia filo collegato a entrambi i dispositivi: Usando questo oggetto socket collegato filo ottiene all'ingresso e invia il flusso all'altra periferica. E chiama la funzione read su inputstream in un ciclo while in modo che provi sempre a leggere da un altro dispositivo in modo che ogni volta che un altro dispositivo invia un messaggio questa funzione di lettura restituisca tale messaggio.

BluetoothChatService ha anche un metodo write che accetta come input byte[] e chiama il metodo di scrittura sul thread collegato.

mChatService.write("your message".getByte()); 

metodo di scrittura nella filettatura connessa basta scrivere questi dati di byte in outputream dell'altro dispositivo.

public void write(byte[] buffer) { 
    try { 
     mmOutStream.write(buffer); 
    // Share the sent message back to the UI Activity 
    // mHandler.obtainMessage(
    // BluetoothGameSetupActivity.MESSAGE_WRITE, -1, -1, 
    // buffer).sendToTarget(); 
    } catch (IOException e) { 
    Log.e(TAG, "Exception during write", e); 
    } 
} 

Ora per la comunicazione tra due dispositivi basta chiamare la funzione di scrittura su mChatService e gestire il messaggio che riceverete sull'altro dispositivo.

+0

Qualcuno ha affrontato il problema con questo servizio di chat che non era in grado di connettersi con il dispositivo, o addirittura collegarsi e disconnettersi all'istante? – Jacob

+0

La tua spiegazione mi ha salvato per tutto il giorno! Grazie! –

1

Poiché l'OP non ha ancora accettato nessuna delle risposte, offrirò un paio di app di esempio per la connessione a dispositivi specifici. Non cerco per la qualità degli esempi di codice, ma se stai cercando un codice "reale" - nel senso di un'app che si connette a un dispositivo sensore, prende le letture da esso e, può, scrivere a il dispositivo, questi possono aiutare:

AndroiDAQ è una scheda per la prototipazione di applicazioni di acquisizione dati. Il costruttore, Rick Fluck, ha fornito un'app Android open source di esempio su Github. Cerca il file AndroiDAQService.java. Il metodo Run() verso il basso mostra sia la lettura che la scrittura dal DAQ. (YMMV. L'app completa è disponibile per il download gratuito dall'app store. Scopriamo che si blocca spesso ma potrebbe essere che la nostra scheda DAQ emetta output estranei abbastanza spesso. Nella nostra app, liberamente basata sull'esempio di Rick, gestiamo il strani caratteri extra e non si bloccano per questo motivo.)

Texas Instruments vende un economico SensorTag Bluetooth con un piccolo numero di sensori incorporati a bordo. Forniscono a free SDK per lavorare con il tag e, IIRC, include il codice sorgente per le loro app Android e iOS. Fai attenzione quando esegui una ricerca, ma sembra che, dal momento che abbiamo acquistato la nostra, hanno creato un nuovo dispositivo con lo stesso nome che utilizza la tecnologia Bluetooth Smart a basso consumo, che è molto diversa dalla tecnologia Bluetooth tradizionale.