Raider
Neues Mitglied
- 0
Moin Leutz,
Versuche insgesamt einfache Bluetooth App zu schreiben,
die mit einem andern Bluetooth Device kommunizieren kann.
Auf einem Nexus 5 befindet sich meine App und auf einem Samsung S3 befindet sich eine Terminal APP aus dem GoogleStore
Verbinden klappt super und auch das Senden einer Nachricht von meiner APP an das Terminal.
Das Empfangen der Nachrichten die ich von Terminal sende funktioniert nicht.
Vorab (Habe das Terminal mit einer BluetoothChat APP getestet funktioniert einwandfrei )
Selbstverständlich habe ich mich auch selbst auf die Fehlersuche gemacht.
Das Ergebnis zudem ich gekommen bin ist , dass ich überhaupt nicht in das try springe indem der INPUT STREAM gelesen wird
Ich zeige ich das am besten am Code :
und hier mein HANDLER der den Mist verarbeiten soll
Alles befindet sich in der MainActivity habe also keine neuen Klassen erstellt
//Wäre natürlich übersichtlicher aber wenn das Lesen klappt kann ich ja noch auslagern
Mir ist absolut nicht klar warum ich keine Nachrichten erhalte
Einer ne Ideeeeee?
LG Raider
Der ursprüngliche Beitrag von 03:55 Uhr wurde um 03:57 Uhr ergänzt:
Vielleicht etwas besser formuliert:
Ich komme in die run() Methode in der der InputStream gelesen wird nicht rein
Kann mir nicht erklären wieso
Der ursprüngliche Beitrag von 03:57 Uhr wurde um 03:58 Uhr ergänzt:
Ist aber mit LOG ausführlich im Code gekennzeichnet ( werden ihr sicher gleich sehen )
Versuche insgesamt einfache Bluetooth App zu schreiben,
die mit einem andern Bluetooth Device kommunizieren kann.
Auf einem Nexus 5 befindet sich meine App und auf einem Samsung S3 befindet sich eine Terminal APP aus dem GoogleStore
Verbinden klappt super und auch das Senden einer Nachricht von meiner APP an das Terminal.
Das Empfangen der Nachrichten die ich von Terminal sende funktioniert nicht.
Vorab (Habe das Terminal mit einer BluetoothChat APP getestet funktioniert einwandfrei )
Selbstverständlich habe ich mich auch selbst auf die Fehlersuche gemacht.
Das Ergebnis zudem ich gekommen bin ist , dass ich überhaupt nicht in das try springe indem der INPUT STREAM gelesen wird
Ich zeige ich das am besten am Code :
HTML:
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
public ConnectedThread(BluetoothSocket socket) {
mmSocket = socket;
InputStream tmpIn = null;
OutputStream tmpOut = null;
Log.e("Tag", "IM TRY");
// Get the input and output streams, using temp objects because
// member streams are final
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
Log.e("Tag", "IM TRY____LESEN");
} catch (IOException e) { }
mmInStream = tmpIn;
mmOutStream = tmpOut;
}
///der WILL HIER NICHT REIN
public void run() {
byte[] buffer; // buffer store for the stream
int bytes; // bytes returned from read()
Log.e("TAG","HIER WILL DER NICHT REIN");
// Keep listening to the InputStream until an exception occurs
Log.e("TAG","HIER WILL DER NICHT REIN");
while (true) {
try {
buffer = new byte[1024]; // reset buffer
// Read from the InputStream
Log.e("TAG","HIER WILL DER NICHT REIN");
bytes = mmInStream.read(buffer);//buffer)
Log.d("TAG", Integer.toString(bytes));
// Send the obtained bytes to the UI activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
Log.e("TAG","HIER WILL DER NICHT REIN");
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) { }
}
/* Call this from the main activity to shutdown the connection */
public void cancel() {
try {
mmSocket.close();
} catch (IOException e) { }
}
}
und hier mein HANDLER der den Mist verarbeiten soll
HTML:
private final Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case SUCCESS_CONNECT:
//Starte Thread Connected
Log.e("Tag", "ERFOLGREICH VERBUNDEN___ STARTE NUN mconnectedThread");
ConnectedThread mconnectedThread = new ConnectedThread((BluetoothSocket)msg.obj);
String a = "ERSTE NACHRICHT";
//String a kommt perfekt am Terminal an
//aber hier fängt der Salat an
mconnectedThread.write(a.getBytes());
break;
case MESSAGE_READ:
Log.e("Tag", "READ MESSAGE___BIN DRINNEN");
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf, 0, msg.arg1);
Log.e("Tag", "TEXT ERHALTEN = "+readMessage);
break;
}
}
};
Alles befindet sich in der MainActivity habe also keine neuen Klassen erstellt
//Wäre natürlich übersichtlicher aber wenn das Lesen klappt kann ich ja noch auslagern
Mir ist absolut nicht klar warum ich keine Nachrichten erhalte
Einer ne Ideeeeee?
LG Raider
Der ursprüngliche Beitrag von 03:55 Uhr wurde um 03:57 Uhr ergänzt:
Vielleicht etwas besser formuliert:
Ich komme in die run() Methode in der der InputStream gelesen wird nicht rein
Kann mir nicht erklären wieso
Der ursprüngliche Beitrag von 03:57 Uhr wurde um 03:58 Uhr ergänzt:
Ist aber mit LOG ausführlich im Code gekennzeichnet ( werden ihr sicher gleich sehen )