Androidstudio Bluetooth connect

Keiner

Mitglied
Moin,

Ich programmiere gerade eine Android app (mit Java) welche sich mit einem ESP32 über "normales" Bluetooth verbinden und auf knopfdruck bestimmte daten senden soll. Dazu nutze ich folgende libary: https://github.com/harry1453/android-bluetooth-serial . In der Beispiel app der libary funktioniert alles wie es soll. Da die app sich immer mit dem selben esp32 verbinden soll verzichte ich in meiner app aufe eine geräte-auswahl. Nun zum problem: immer wenn sich die app mit dem esp32 verbinden soll stürtzt sie ab.
[CODE lang="java" highlight="3-6"]public void connect() {
if (!connectionAttemptedOrMade) {
compositeDisposable.add(bluetoothManager.openSerialDevice("XX:XX:XX:XX:XX:XX")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(device -> onConnected(device.toSimpleDeviceInterface()), t -> {
createToast("Verbindung konnte nicht hergestellt werden!");
connectionAttemptedOrMade = false;
connectionStatusData.postValue(ConnectionStatus.DISCONNECTED);
}));
connectionAttemptedOrMade = true;
connectionStatusData.postValue(ConnectionStatus.CONNECTING);
}

}

private void onConnected(SimpleBluetoothDeviceInterface deviceInterface) {
this.deviceInterface = deviceInterface;
if (this.deviceInterface != null) {
connectionStatusData.postValue(ConnectionStatus.CONNECTED);
this.deviceInterface.setListeners(this::eek:nMessageReceived, this::eek:nMessageSent, t -> createToast("Fehler beim senden!"));
createToast("verbunden!");
messages = new StringBuilder();
messagesData.postValue(messages.toString());
} else {
createToast("verbinden fehlgeschlagen!");
connectionStatusData.postValue(ConnectionStatus.DISCONNECTED);
}
}

private void onMessageReceived(String message) {
messages.append("Car ").append(": ").append(message).append('\n');
messagesData.postValue(messages.toString());
}

private void onMessageSent(String message) {
messages.append(getApplication().getString(R.string.you_sent)).append(": ").append(message).append('\n');
messagesData.postValue(messages.toString());
messageData.postValue("");
}[/CODE]

(Die mac-adresse habe ich hier durch X'se ersetzt)
Meinen Fehler konnte ich auf die Markierte stelle eingrenzen. Ich bin mir sogar sicher, dass das Program nichts mit "device" anfangen kann, da ich glaube, dass es definert wird wenn man ein Gerät auswählt.

MfG
 
K

kneitzel

Gast
Dann schau doch erst einmal ins logcat um die genaue Meldung zu bekommen, mit der Applikation abstürzt. Das ist mit die wichtigste Grundlage bei der Entwicklung: An die Meldungen heran kommen, wenn etwas nicht so läuft, wie es soll.
 

Jw456

Top Contributor
Hallo

compositeDisposable.add(bluetoothManager.openSerialDevice("XX:XX:XX:XX:XX:XX")

Die Mac Adresse hier direkt zuübergeben macht keinen sinn . Es wird auch noch an anderer stelle auf die Adresse zugeriffen.
Du musst sie schon auch in dem Model in der Instanz Variablen speichern.
Mac und DeviceName
Also übergebe es dem Intent oder füge die werte in die Activity direkt ein und übergebe es dem Model wo du ja auch die Verbindung machst.
 

Jw456

Top Contributor
ps hier in der activity werde die Daten Mac und Name Übergeben.
Java:
if (!viewModel.setupViewModel(getIntent().getStringExtra("device_name"), getIntent().getStringExtra("device_mac"))) {
wenn nicht über einen Intent solltest du zu mindesten die Daten mit der setViewModel Methode übergeben. Nicht direkt im Model.
 

Jw456

Top Contributor
edit welche art oder schreibweise der Mac er in seine Lib benutz solltest du testen.
oder dir mal ausgeben lassen
  • 78-92-9C-46-B5-14
  • 78:92:9C:46:B5:14
  • 78929C46B514
 

Keiner

Mitglied
Vielen dank für eure hilfe,
durch eure antworten ist mir aufgefallen, dass mein Problem war, dass ich einfach sämtlichen code in die MainActivity.java-datei gepakt habe, nachdem ich dann eine ViewModel datei angelegt habe und alles nochmal neu gemacht habe hat es funktioniert.

MfG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J AndroidStudio Login.Java Android & Cross-Platform Mobile Apps 0
xXSkyWalkerXx1 Android Bluetooth LE - Frage zur Funktionalität Android & Cross-Platform Mobile Apps 26
S Android Studio Bluetooth App Problem Android & Cross-Platform Mobile Apps 6
D Android Bluetooth Chat Example modifizieren Android & Cross-Platform Mobile Apps 6
T Musik über Bluetooth streamen Android & Cross-Platform Mobile Apps 2
H WIFI, Bluetooth und NFC Verbindung überwachen Android & Cross-Platform Mobile Apps 1
A Zweite Kamera an HTC und per Bluetooth kommunizieren? Android & Cross-Platform Mobile Apps 2
W Bluetooth und obex Package nutzen Android & Cross-Platform Mobile Apps 4
P Bluetooth vom remoteDevice auf den Stream Android & Cross-Platform Mobile Apps 9
K Java ME Bluetooth verbindung parameter Android & Cross-Platform Mobile Apps 3
K Java ME Bluetooth geräte suchen Android & Cross-Platform Mobile Apps 2
K Java ME J2ME Bluetooth - bluesoleil,bluecove, JSR82... ? Android & Cross-Platform Mobile Apps 6
S Wie teste ich meine Bluetooth Anwendung Android & Cross-Platform Mobile Apps 4
G Bluetooth LocalDevice.isPowerOn() meldet false Android & Cross-Platform Mobile Apps 2
R Bluetooth und Sun Wireless Toolkit 2.5.2 Android & Cross-Platform Mobile Apps 3
G Bluetooth Verbindung zwischen Handy und PC Android & Cross-Platform Mobile Apps 5
W Datenbankzugriff, WLAN, Bluetooth Android & Cross-Platform Mobile Apps 2
T Java Bluetooth Kalender Android & Cross-Platform Mobile Apps 2
C How to send AT-Commands via Bluetooth using JSR-82 Android & Cross-Platform Mobile Apps 3
G Bluetooth Verbindung Android & Cross-Platform Mobile Apps 2
J Bluetooth Stick und Lego Mindstorms Android & Cross-Platform Mobile Apps 2
O Bluetooth Verbindung zwischen 2 Handys Android & Cross-Platform Mobile Apps 5
D Bluetooth Pairing dem Programm ueberlassen? Android & Cross-Platform Mobile Apps 3
L HTTP via Bluetooth Android & Cross-Platform Mobile Apps 2
D Start/Stop Bit per Bluetooth von PC zu PC, oder PCtoHandy Android & Cross-Platform Mobile Apps 2
M bluetooth? Android & Cross-Platform Mobile Apps 3
Noahscript Android Socket.connect() wiederholt sich mehrmals? Android & Cross-Platform Mobile Apps 4
T Java Mobile SDK 3 - Can't Connect to Device Manager Android & Cross-Platform Mobile Apps 14
T HttpConnection error connect(Unknown Source) Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben