Problem mit Bluetooth

  • 0 Antworten
  • Letztes Antwortdatum
P

phischl

Neues Mitglied
0
Hallo!

Ich beschäftige mich erst seit kurzem mit der App-programmierung für Android.
Für ein Projekt muss ich nun eine App programmieren, die über Bluetooth Daten sendet und Befehle empfängt. Je nachdem welcher Befehl empfangen wurden, sollen die entsprechenden Daten gesendet werden.
Ich hab die Bluetooth-Chat-App verändert. Senden und Empfangen funktioniert auch. Ich kann auch den empfangenen Befehl erkennen. Nur wenn ich dann Daten senden möchte, hängt sich die App auf.

Code:
   // The Handler that gets information back from the BluetoothChatService
    private final Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
                if(D) Log.i(TAG, "MESSAGE_STATE_CHANGE: " + msg.arg1);
                switch (msg.arg1) {
                case BluetoothChatService.STATE_CONNECTED:
                    mTitle.setText(R.string.title_connected_to);
                    mTitle.append(mConnectedDeviceName);
                    mConversationArrayAdapter.clear();
                    break;
                case BluetoothChatService.STATE_CONNECTING:
                    mTitle.setText(R.string.title_connecting);
                    break;
                case BluetoothChatService.STATE_LISTEN:
                case BluetoothChatService.STATE_NONE:
                    mTitle.setText(R.string.title_not_connected);
                    break;
                }
                break;
            case MESSAGE_WRITE:
                byte[] writeBuf = (byte[]) msg.obj;
                // construct a string from the buffer
                String writeMessage = new String(writeBuf);
                mConversationArrayAdapter.add("Me:  " + writeMessage);
                break;
            case MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;
                // construct a string from the valid bytes in the buffer
                String readMessage = new String(readBuf, 0, msg.arg1);
                mConversationArrayAdapter.add(mConnectedDeviceName+":  " + readMessage);
                          
                if (readMessage.contains("R"))
                {
                    // Richtiger Befehl empfangen, if wird auch ausgeführt
zview.drawLine(20, 20, 70, 70);
                }
                break;
            case MESSAGE_DEVICE_NAME:
                // save the connected device's name
                mConnectedDeviceName = msg.getData().getString(DEVICE_NAME);
                Toast.makeText(getApplicationContext(), "Connected to "
                               + mConnectedDeviceName, Toast.LENGTH_SHORT).show();
                break;
            case MESSAGE_TOAST:
                Toast.makeText(getApplicationContext(), msg.getData().getString(TOAST),
                               Toast.LENGTH_SHORT).show();
                break;
            }
        }
    };
Die Abfrage
Code:
 if (readMessage.contains("R"))
wird auch ausgeführt (Hab das überprüft, es wird die Linie gezeichnet).
Möchte ich nun dort neue Daten senden mit
Code:
sendMessage("Daten");
hängt sich die App auf.

Wie kann ich auf den empfangenen Befehl reagieren und neue Daten senden?

Danke für eure Hilfe!
mfg
 
Zurück
Oben Unten