Problem beim Bluetooth-Verbindungsaufbau

  • 0 Antworten
  • Letztes Antwortdatum
M

Martin10

Neues Mitglied
0
Hallo Community,

ich bin neu in der Android Programmmierung und versuche eine Bluetooth-Verbindung zwischen meinem Smartphone und einem Bluetooth-Modul aufzubauen.

Die Vorraussetzungen sind denkbar einfach. Die MAC-Adresse ist bekannt und die Geräte sind bereits manuell gepaart. Zudem sollen die gesendeten Daten im Ersten Versuch ein konstanter String sein.

Der Fehler passiert im Try Block. Ich werde von der App aufgefordert den Pairing-Key einzugeben und lande danach im Exeptions-Block

Code:
04-22 10:21:05.253: E/BluetoothChat(19794): ++ ON START ++
04-22 10:21:05.433: E/BluetoothChat(19794): ++ verbinden ++
04-22 10:21:28.055: E/BluetoothChat(19794): ++ Fehler beim Verbindungsaufbau ++
Leider gelang es mir bisher nicht, das Android Chat Beispiel zum Laufen zu bekommen. Sowohl der Emulator als auch das Smartphone stürzen beim Start trotz der nötigen Permissions ab... Meinen Quelltext habe ich anhand von Literatur und den Android Samples zusammen gebastelt.

Über konstruktive Hilfe und Kritik würde ich mich sehr freuen. Vielen Dank.


Code:
public class MainActivity extends Activity {


    private static final boolean Debug = true;
    private static final String DEBUG_TAG = "BluetoothChat";
    private static final int REQUEST_ENABLE_BT = 3;
    private static final int DISCOVERY_REQUEST = 0;
    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }
   
    
    @Override
    public void onStart() {
        
        super.onStart();
        if(Debug) Log.e(DEBUG_TAG, "++ ON START ++");

        
        // Abfrage ob BT aktiviert  und anschließend einschalten des BT Modul
       
        if (!bluetooth.isEnabled()) 
        {
            //String actionStateChange     = BluetoothAdapter.ACTION_STATE_CHANGED;
            String actionRequestEnable     = BluetoothAdapter.ACTION_REQUEST_ENABLE;
            startActivityForResult(new Intent(actionRequestEnable),0);
            Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
        } 
        String toastText;
        String adress = bluetooth.getAddress();
        String name = bluetooth.getName();
        toastText = name + " : " + adress;
        Toast.makeText(this, toastText, Toast.LENGTH_LONG).show(); 

        //startDiscovery();
        
        startConnection();
    }
    
    public void startConnection() {
        
        OutputStream outStream;

            try {
                BluetoothDevice device = bluetooth.getRemoteDevice("00:06:66:4B:2A:40");
                UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
                
                BluetoothSocket clientSocket = device.createRfcommSocketToServiceRecord(SPP_UUID);
                if(Debug) Log.e(DEBUG_TAG, "++ verbinden ++");
                clientSocket.connect();
                if(Debug) Log.e(DEBUG_TAG, "++ Verbindung aufgebaut ++");
                
                
                outStream = clientSocket.getOutputStream();
                byte[] byteArray = ("Test" + " ").getBytes();
                byteArray[byteArray.length -1] = 0;
                outStream.write(byteArray);
                
                
                
            } catch (IOException e) {
                if(Debug) Log.e(DEBUG_TAG, "++ Fehler beim Verbindungsaufbau ++");
                e.printStackTrace();
            }
            
        
    }
    

}
 
Zuletzt bearbeitet:
Zurück
Oben Unten