![]() |
Android BLE Verbindung
Hallo,
ich scheitere gerade am BLE Verbindungsaufbau zu einem BLE Gerät unter Android. Es handelt sich um ein Custom Device auf Basis eines ESP32. Auf Plattform Windows funktioniert derselbe Code einwandfrei. Hier ist Aufruf von DiscoverServices ausreichend, um eine Verbindung aufzubauen. Das erkenne an einer Status LED des Gerätes. Dann rufe ich für zwei Characteristiken SetCharacteristicNotification auf und schon erhalte ich über das Ereignis BluetoothLECharacteristicRead Daten von dem Gerät. Ganz easy. Auf Plattform Android rufe ich Connect auf, dann DiscoverServices und schließlich SetCharacteristicNotification. Funktioniert alles fehlerfrei. Aber die Status LED zeigt keine Vebindung an und ich erhalte natürlich auch keine Daten. Ich gehe im Prinzip wie in den Heart Rate Monitor Beispiel vor. Auch mit der Nordic RF Connect App kann ich keine vollständige Verbindung aufbauen. Connect wird zwar angezeigt. Aber die LED bleibt auch hier im Status keine Verbindung. Habt ihr einen Tipp für mich was hier unter Android noch zusätzlich zu beachten sein könnte, um eine Verbindung aufbauen? Gruß + Danke |
AW: Android BLE Verbindung
Klassiker wären die Android Permissions und vielleicht Manifesteinträge.
Ggf ist das Device auch in einem anderen WLAN oder in einem abgeschirmten WLAN, das nur nach draußen geht. |
AW: Android BLE Verbindung
Permissions habe ich, ansonsten würden doch die ganzen BT Funktionen nicht fehlerfrei funktionieren. Das Gerät ist in keinem WLAN. Mit der Nordic geht es ja auch nicht.
Unter Windows funktioniert es mit dem gleichen Gerät und der gleichen App eine Minute später perfekt. Durch die WinRT Funktion IBluetoothLEDevice3.GetGattServicesAsync wird die Verbindung erfolgreich aufgebaut, sehe ich an der Status LED. Irgendwas muss an dieser Stelle unter Android anders sein. Werde mal den Enwickler der Firmware fragen. |
AW: Android BLE Verbindung
Interessant, über die Write Charakteristik kann ich Befehle an das Gerät senden. Diese werden auch richtig interpretiert. Aber auf der zweiten Read Charakteristik, die für die Antworten zuständig ist, erhalte ich auch keine Daten zurück.:?:
|
AW: Android BLE Verbindung
Zitat:
Es gibt aber auch BLE firmware die bewusst die Verbindung nach ein paar Sekunden abwirft, wahrscheinlich um Strom zu sparen. Ich vermute mal Du hast Notify characteristics, die Du dann im Nordic RF subscriben möchtest. Womit hast du das denn auf dem ESP32 programmiert, mit den EspressifTools oder mit Arduino Framework ? Ich bin jetzt bei ESP32 noch nicht so tief eingestiegen, das wollte ich aber noch, ich würde erstmal mit einem kleinen Demo entweder von Espressif oder Arduino anfangen und sehen wie sich das verhält. Dazu habe ich schon mal mit PlatformIO herumprobiert, das sah ziemlich gut aus. |
AW: Android BLE Verbindung
Problem mit Hilfe des Entwicklers der ESP32 Firmware gelöst. RequestMtu nach Connect lautet der Zauberspruch, den der ESP32 gerne für ein "vollständiges" Connect haben möchte. Offensichtlich macht Windows das bei DiscoverServices automatisch im Hintergrund.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz