AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Android BLE Verbindung

Ein Thema von Rapunzel · begonnen am 19. Dez 2021 · letzter Beitrag vom 20. Dez 2021
Antwort Antwort
Rapunzel

Registriert seit: 1. Mär 2019
37 Beiträge
 
Delphi 11 Alexandria
 
#1

Android BLE Verbindung

  Alt 19. Dez 2021, 11:56
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
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.973 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Android BLE Verbindung

  Alt 19. Dez 2021, 14:09
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Rapunzel

Registriert seit: 1. Mär 2019
37 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Android BLE Verbindung

  Alt 19. Dez 2021, 14:36
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.
  Mit Zitat antworten Zitat
Rapunzel

Registriert seit: 1. Mär 2019
37 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Android BLE Verbindung

  Alt 19. Dez 2021, 16:57
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.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.345 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Android BLE Verbindung

  Alt 20. Dez 2021, 08:38
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.
Dann stimmt womöglich was mit dem ESP32-Programm nicht.
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.
  Mit Zitat antworten Zitat
Rapunzel

Registriert seit: 1. Mär 2019
37 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Android BLE Verbindung

  Alt 20. Dez 2021, 13:06
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf