Wie eine Verbindung zu Raspberry pi mit einer android app über bluetooth

Ich habe Probleme beim Anschluss meines Smartphones auf meinem raspberry pi über bluetooth mit einer app.

Meine situation:

Entwickle ich ein bluetooth steuerbare Anwendung basierend auf einem raspberry pi. Ich bin in der Lage, die Verbindung zum raspberry pi über bluetooth und das senden und empfangen von Daten über RFCOMM socket mit der app "bluetooth terminal". Der raspberry pi ist ständig empfangsbereit für RFCOMM-Verbindung.

Mein Ziel:

Ich will eine app entwickeln, in dem der Benutzer eine Verbindung herstellen kann mit dem raspberry pi über bluetooth. Sollte die app öffnen Sie den RFCOMM socket, so kann es die Kommunikation mit dem pi.

Mein problem:

Meine app ist nicht in der Lage, eine Verbindung zu dem raspberry pi und da weiß ich nicht, die UUID des raspberry pi, ich denke, dass könnte das problem sein.

Mein code:

Ich bin ganz neu bei java-Programmierung, so korrigieren Sie mich, wenn Sie sehen, dass etwas seltsames vor. Dies ist die Methode, die ich bin versucht zu verbinden.

        public void BTConnect() {

    final UUID MY_UUID = UUID.fromString("0000110E-0000-1000-8000-00805F9B34FB");
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    BluetoothSocket socket = null;
    String RPi_MAC = "XX:XX:XX:XX:XX:XX";

    Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
    //If there are paired devices
    if (pairedDevices.size() > 0) {

        //Loop through paired devices
        for (BluetoothDevice device : pairedDevices) {
            if (device.getAddress().equals(RPi_MAC)) {
                try {
                    socket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
                } catch (IOException e0) {
                    Log.d("BT_TEST", "Cannot create socket");
                    e0.printStackTrace();
                }

                try {
                    socket.connect();
                } catch (IOException e1) {
                    try {
                        socket.close();
                        Log.d("BT_TEST", "Cannot connect");
                        e1.printStackTrace();
                    } catch (IOException e2) {
                        Log.d("BT_TEST", "Socket not closed");
                        e2.printStackTrace();
                    }
                }
            }
        }
    }
}

Wenn ich auf die Schaltfläche, um zu verbinden, das ist die Ausgabe von android studio:

   W/BluetoothAdapter: getBluetoothService() called with no BluetoothManagerCallback
   D/BT_TEST: Cannot connect
   W/System.err: java.io.IOException: read failed, socket might closed or timeout, read ret: -1
   W/System.err:     at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:599)
   W/System.err:     at android.bluetooth.BluetoothSocket.readInt(BluetoothSocket.java:610)
   W/System.err:     at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:333)
   W/System.err:     at com.example.gebruiker.soundslikepi.MainActivity.BTConnect(MainActivity.java:80)
   W/System.err:     at com.example.gebruiker.soundslikepi.MainActivity$1.onClick(MainActivity.java:39)
   W/System.err:     at android.view.View.performClick(View.java:4856)
   W/System.err:     at android.view.View$PerformClick.run(View.java:19956)
   W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
   W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
   W/System.err:     at android.os.Looper.loop(Looper.java:211)
   W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5373)
   W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
   W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
   W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
   W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

Zusammengefasst:

So, in der Lage sein, um eine Verbindung mit dem raspberry pi von einem android-app, kann ich:

  • Müssen wissen, was die UUID des raspberry pi ist, wenn ja, wie finde ich das heraus?
  • Müssen, verwenden Sie einen anderen Ansatz in meine android-app?

Ich würde wirklich gerne wissen, wie dieses problem zu lösen, so dass jede Hilfe wäre sehr geschätzt.

Ich Frage mich, ob Sie tatsächlich eine Lösung gefunden zu deinem problem. Ich bin in der gleichen brauchen, gerade jetzt, ich brauche eine Verbindung zu meinem Android-app auf dem Raspberry Pi über bluetooth. Ich bin mit der bluecove-bluetooth-Bibliothek. Aber ich weiß nicht, wie man die UUID des Raspberry Pi noch was soll ich tun es in der Android-App. Haben Sie eine Idee?
Nein habe ich noch nicht eine Lösung finden.. Wenn ich das Tue, werde ich auf dieses Thema
So heute habe ich beschlossen, weiterhin zu versuchen, eine Verbindung zu meinem raspberry pi amd mein android-Handy über bluetooth.. Mit Erfolg! Ich versuchte es noch einmal mit einer uuid und ich fand, dass die uuid, die ich von der raspberry pi war die Basis der uuid des bluetooth-Geräten (0000XXXX-0000-1000-8000-00805F9B34FB) mit dem RFCOMM-spezifische 16-bit-uuid auf das X. Ich war in der Lage, es zu finden, im internet und auf dem raspberry pi mit "sdptool browse local"
Ich bin auch auf der Suche nach einer ähnlichen Anwendung soll die Kommunikation zwischen RPi und Android via Bluetooth. Können Sie teilen Sie Ihre RPi-Seite Beispiel ich habe über den Befehl basierten Lösungen für die Kommunikation über RFCOMM aber nicht sicher, wie man Integration in der Anwendung. Auf der RPi-Seite haben Sie eine Bibliothek, um Daten zu behandeln-Kommunikation?

InformationsquelleAutor R_Zee | 2016-03-19

Schreibe einen Kommentar