# App um Bluetoothverbindung zum Arduino herzustellen stürtzt ab



## TheLighttPlay (2. Mai 2018)

Hallo,
Ich habe das Problem das meine App die eine Verbindung über Bluetooth zu einem Arduino herstellen soll beim verbinden abstürzt.

Hier der Code:

```
public class MainActivity extends AppCompatActivity {


      TextView textfeld;
      Button verbinden;
      Button trennen;
      EditText macadresse;
      TextView LOG;
      TextView textfeld6;
    BluetoothAdapter myBluetooth;
    private boolean is_Connected = false;
    private BluetoothSocket socket = null;
    private UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
    private OutputStream stream_out = null;



    Handler handler;
    Runnable runnable;


    private Set pairedDevice;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


      //  tv_battery = (TextView) findViewById(R.id.tv_batery);
        runnable = new Runnable() {
            @Override
            public void run() {
             int level = (int) batteryLevel();
          //      tv_battery.setText("BATTERY: "+ level + "%");


                handler.postDelayed(runnable,0);
            }
        };

        handler = new Handler();
        handler.postDelayed(runnable,0);

        textfeld6 = (TextView) findViewById(R.id.textView6);
        LOG = (TextView) findViewById(R.id.textView5);
        textfeld = (TextView) findViewById(R.id.textView4);
        textfeld.setBackgroundColor(Color.RED);
        final Button trennen  = (Button) findViewById(R.id.button4);
        macadresse = (EditText) findViewById(R.id.editText2);
         //String mac_adresse = ((EditText) findViewById(R.id.editText2)).getText().toString();


        final Button button = (Button) findViewById(R.id.button2);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                myBluetooth = BluetoothAdapter.getDefaultAdapter();
                if(myBluetooth == null){
                    LOG.setText("Bitte Bluetooth aktivieren");

                }else{
                    LOG.setText("Bluetooth Adapter bereit");

                }

                // Mac adresse 1 00:21:13:00:c0:49
                // Mac adresse 2 00:21:13:00:c3:85
                verbindung(v);

            }
        });






        trennen.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {



                if(is_Connected && stream_out != null){
                    is_Connected = false;
                    try{
                        socket.close();
                        stream_out.flush();
                    }catch(Exception e){
                        LOG.append("Fehler beim beim trennen "+ e.toString());
                    }
                }else{
                    LOG.append("Fehler: nichts zum trennen vorhaben");
                }

                textfeld.setText("Nicht Verbunden");
                textfeld.setBackgroundColor(Color.RED);


            }
        });

    }

    public void verbindung(View v){
        String mac_adresse = ((EditText) findViewById(R.id.editText2)).getText().toString();
        LOG.append("Verbinde mit "+mac_adresse);
          BluetoothDevice remotedevice = myBluetooth.getRemoteDevice(mac_adresse); //Ab hier schmiert die App ab.ö

        try{
            wait(2000);
        }catch (Exception e){

        }

        try{
            socket = remotedevice.createInsecureRfcommSocketToServiceRecord(uuid);
            LOG.append("Socket erstellt");
            textfeld.setText("Verbunden");
            textfeld.setBackgroundColor(Color.GREEN);
        }catch (Exception e){
            LOG.append("Socket erstellen fehlgeschlagen" + e.toString());
        }

        myBluetooth.cancelDiscovery();

        try{
            socket.connect();
            LOG.append("Socket verbunden");
            is_Connected = true;
        }catch(Exception e){
            LOG.append("Socket erstellung fehlgeschlagen" + e.toString());
            is_Connected = false;
        }

        if(!is_Connected){
            try{
                socket.close();
            }catch (Exception e){
                LOG.append("Socket kann nicht beendet werden "+ e.toString());
            }
        }

        try{
            stream_out = socket.getOutputStream();
            LOG.append("Outputstream erstellt");
        }catch(Exception e){
            LOG.append("Outputstram erstellen fehler "+ e.toString());
            is_Connected = false;
        }



    }

    public void sendung(){
        int message = 0;
        //byte[] msgbuffer = message.getBytes();
        if(is_Connected){
            LOG.append("Sende Nachricht: " + message);
            try{
                int level = (int) batteryLevel();

                while(true){
                    if(level >95){
                        message = 0;
                        //byte[] msgbuffer = message.getBytes();
                        stream_out.write(message);
                    }else{
                        message = 1;
                        //byte[] msgbuffer = message.getBytes();
                        stream_out.write(message);
                    }
                }

            }catch (Exception e){
                LOG.append("Senden fehlgeschlagen "+ e.toString());
            }
        }

    }



    public float batteryLevel(){
        Intent batteryIntent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
        int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL,-1);
        int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE,-1);

        if(level == -1|| scale == 1){
            return 50.0f;
        }
        return ((float) level / (float) scale)* 100.0f;
    }

}
```


----------



## Flown (2. Mai 2018)

Bitte Code in Code-Tags setzen: [code=java]//JAVA CODE HERE[/code]


----------



## Robat (2. Mai 2018)

Poste mal den relevanten LogCat Auszug


----------

