2012-09-24 10 views
50

Kann mir jemand geben Android Bluetooth Kommunikation Tutorial Links oder Hinweise? Bitte sagen Sie mir nicht, dass ich mich auf das BluetoothChat-Beispiel beziehen soll, ich kann nur verstehen, wie man Geräte erkennt und verbindet, aber nicht weiß, wie man die Daten über Bluetooth sendet und empfängt.Android Bluetooth Beispiel

Ich arbeite tatsächlich an einem Android und Embedded Bluetooth Geräte-Projekt. Bitte helfen Sie mir ..

+2

können Sie BluetoothChat Beispiel Basis über die Daten zu senden. Wenn Sie sich den Code ansehen, wird die Textnachrichtenfolge in Byte [] konvertiert, bevor sie über Bluetooth gesendet wird. Konvertieren Sie Ihre Daten in Byte [] und senden Sie sie dann. –

+0

IMHO Chat Beispiel ist gut nur für Chat oder eine etwas schnellere Kommunikation .. Wenn Sie mehr als 100 Nachrichten pro Sekunde senden müssen, bin ich mir nicht sicher, ob es nützlich ist. – Ewoks

Antwort

5

Die Android-Entwickler-Seite hat tutorials und erläutert, wie die Bluetooth-Funktion verwenden:
Ich hoffe, das hilft.

+7

Ich bin durch diese gegangen Ich kann Geräte entdecken, verbinden sie aber wie man Daten auf BT sendet und empfängt? – Pratik

9

ich auch folgende Link verwendet haben als andere, die Sie für Bluetooth-Kommunikation vorgeschlagen haben.

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

Die Sache ist alles, was Sie ist eine Klasse BluetoothChatService.java

diese Klasse hat folgende Themen benötigen:

  1. Accept
  2. Connecting
  3. Verbunden

Nun, wenn Sie anrufen Startfunktion des BluetoothChatService wie:

mChatService.start(); 

Es beginnt Thread zu akzeptieren, was bedeutet es für die Verbindung suchen beginnt.

Wenn Sie jetzt

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

Hier erste Argument nennen, ist Gerät Objekt, das Sie aus gekoppelten Geräte Liste erhalten können oder wenn Sie nach Geräten scannen Sie alle Geräte in Reichweite erhalten Sie das Objekt diesem passieren kann Funktion und zweites Argument ist ein boolescher Wert, um eine sichere oder unsichere Verbindung herzustellen.

connect Funktion wird starten Verbindung Thread, der für jedes Gerät suchen wird, die Thread ausgeführt wird.

Wenn solch ein Gerät gefunden wird sowohl Gewinde akzeptieren und Anschlussgewinde funktionieren in BluetoothChatService verbundenen Anruf:

in
connected(mmSocket, mmDevice, mSocketType); 

Dieses Verfahren beginnt angeschlossenen Faden sowohl die Geräte: dieses Socket-Objekt Mit Gewinden verbunden erhält den Eingang und Ausgabestrom an das andere Gerät. Und Anrufe read Funktion auf Eingangsstrom in einer while-Schleife, so dass es immer versucht, von anderen Gerät zu lesen, so dass, wenn andere Gerät eine Nachricht senden diese Lesefunktion diese Nachricht zurückgibt.

BluetoothChatService verfügt auch über eine write-Methode, die byte[] als Eingabe verwendet und die Schreibmethode für den verbundenen Thread aufruft.

Schreibmethode im verbundenen Thread schreibe einfach diese Bytedaten in denAusgang des anderen Geräts.

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); 
    } 
} 

nun zwischen zwei Geräten einfach anrufen Schreibfunktion auf mChatService und zu handhaben, die Nachricht zu kommunizieren, die Sie auf dem anderen Gerät empfangen werden.

+0

Hat jemand das Problem mit diesem Chat-Dienst konfrontiert, dass es nicht mit dem Gerät verbinden konnte, oder sogar es verbindet und sofort trennt? – Jacob

+0

Ihre Erklärung hat meinen ganzen Tag gerettet! Vielen Dank! –

1

Da das OP noch keine der Antworten akzeptiert hat, biete ich ein paar Beispiel-Apps für die Verbindung mit bestimmten Geräten an. Ich verbürge mich nicht für die Qualität der Codebeispiele, aber wenn Sie nach echtem Code suchen - im Sinne einer App, die mit einem Sensorgerät verbunden ist, liest es daraus und schreibt möglicherweise Das Gerät, diese können helfen:

AndroiDAQ ist eine Platine für Prototyping Datenerfassungsanwendungen. Der Erbauer, Rick Fluck, hat eine Probe, Opensource Android App auf Github zur Verfügung gestellt. Suchen Sie nach der Datei AndroiDAQService.java. Die Methode Run() nach unten zeigt sowohl Lesen als auch Schreiben aus dem DAQ. (YMMV. Die komplette App steht im App Store zum kostenlosen Download bereit. Wir finden, dass es oft abstürzt, aber das kann sein, dass unser DAQ-Board ziemlich oft überflüssige Ausgaben ausgibt. In unserer eigenen App, die auf Ricks Beispiel basiert, gehen wir mit der ungerade extra Zeichen und stürzen nicht aus diesem Grund.)

Texas Instruments verkauft ein preiswertes Bluetooth SensorTag mit einer kleinen Anzahl von integrierten Sensoren an Bord. Sie liefern a free SDK für die Arbeit mit dem Tag und, IIRC, enthält es den Quellcode für ihre Android-und iOS-Apps. Seien Sie vorsichtig, wenn Sie suchen, es scheint, dass, seit wir unsere gekauft haben, haben sie ein neues Gerät mit etwa dem gleichen Namen, die die Low-Energy-Bluetooth Smart-Technologie, die ganz anders als "traditionelle" Bluetooth verwendet.

3

Es gibt ein gutes Open-Source-Projekt, um Ihnen zu zeigen, wie Sie mit der Kommunikation zwischen Android-Gerät und integriertem Bluetooth-Gerät umgehen.

https://github.com/akexorcist/Android-BluetoothSPPLibrary

+1

Dieser Link ist unterbrochen. Dies ist ein [Arbeitslink] (https://github.com/akexorcist/Android-BluetoothSPPLibrary) – Shahar