Kann nicht Verstehen, mHandler.obtainMessage() in Android-Bluetooth-Probe
Arbeite ich auf Bluetooth rfcomm-Verbindung. Es gibt eine Zeile in der Android-Probe, die ich nicht verstehen kann und leider ich konnte nicht finden eine gute Antwort in anderen Fragen und Ressourcen.
Hier ist der gesamte code:
public void run() {
byte[] buffer = new byte[1024]; //buffer store for the stream
int bytes; //bytes returned from read()
//Keep listening to the InputStream until an exception occurs
while (true) {
try {
//Read from the InputStream
bytes = mmInStream.read(buffer);
//Send the obtained bytes to the UI activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
break;
}
}
}
/* Call this from the main activity to send data to the remote device */
public void write(byte[] bytes) {
try {
mmOutStream.write(bytes);
} catch (IOException e) { }
}
Ich nicht Verstehen kann, ist diese Zeile:
//Read from the InputStream
bytes = mmInStream.read(buffer);
//Send the obtained bytes to the UI activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
mHandler
ist nicht definiert in diesem code und auch MESSAGE_READ
Ich kann nicht verstehen, was bedeutet bytes
tun?
Ich denke und wie bereits im Kommentar sendet er die empfangenen Bytes zu den Aktivitäten, die ich als meine Wichtigste Tätigkeit. Kann ich eine Static TextView
in meiner Haupt-Tätigkeit statt sendToTarget() zum anzeigen der empfangenen Nachricht?
mHandler ist wohl eine Instanzvariable, deklariert, irgendwo in Ihrer Klasse. MESSAGE_READ ist wohl eine Konstante, die in der Klasse definiert oder über einen statischen import.
InformationsquelleAutor Bimbow | 2013-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Hauptziel der
mHandler
zu Benachrichtigen, die Ihre Haupt - "GUI" - thread über etwas. In Ihrem Fall seineMESSAGE_READ
.ohne handler Sie können nichts tun, außer Ihre Haupttätigkeit Thread.
Daher für
mHandler
initiation in die Haupt-Aktivität.Den default-handler init sollte wie:
Wenn Sie Eclipse verwenden, klicken Sie auf das Project -> Strg+H -> Datei-Suche -> "Handler".
Oder in Notepad++ -> Fast -> " Suchen in Dateien ....
[BEARBEITEN]
Ich bin sicher, Sie müssen etwas umsetzen wie:
Quellen fand ich hier
siehe mein edit von mir gepostet
Hmm, ich Glaube ich Schreibe den ganzen code hier. Werde ich Bearbeiten, meine Frage.
Gut, niemand liest voll ist, wird Ihr code, 1. Lesen, was Handler in Android,
Eine Abfrage, ob die Verbindung erfolgreich mit dem bluetooth-Gerät, wie Sie können, führen Sie die Funktion liest die Daten vom Bluetooth-Gerät, um die Anwendung? Ich habe alles eingerichtet aber ich kann nicht bekommen, was Sie senden, mein bluetooth-Gerät
InformationsquelleAutor Maxim Shoustin