Ein bisschen hier stecken, könnte Ihre Hilfe brauchen. Ich möchte mehrere BLE-Eigenschaften gleichzeitig lesen, einige Leute schlagen vor, PriorityQueue dafür zu verwenden. Ich kenne bereits alle Uuids, etc. brauchen nur eine Möglichkeit, mehrere gleichzeitig zu lesen. Kann mir jemand erklären, wie genau das aussehen soll? Oder vielleicht gibt es noch eine andere einfachere Lösung?
Vielen Dank im Voraus, hier ist mein Code:
%Vor%UPDATE:
auch nach dem Einfügen in verschiedene Threads reagiert es immer noch nur auf eine gatt.readCharacteristic (...). wie folgt:
%Vor%Für jeden, der auf dasselbe Problem stoßen könnte, ist hier eine einfache Lösung, die eine List & lt; & gt; von Eigenschaften.
%Vor%Vielen Dank für Ihren Post, Robert K. Ich wollte, dass meine App alle charakteristischen Werte selbst liest und den charakteristischen Wert in der ExpandableList anstelle der UUID anzeigt. Robert Ks Code funktionierte für mich, aber ich habe einen Offset der angezeigten Werte erfahren. Also habe ich ein paar kleine Änderungen vorgenommen und möchte sie teilen: 1.
So habe ich onServicesDiscovered
und OnCharacteristicRead
geändert:
Die eingeblendete Merkmalliste wird nach jeder Trennung geleert.
Ich habe eine Liste zum Speichern der Merkmalswerte und eine ganze Zahl eingeführt, die anzeigt, um welchen Index es sich handelt (diese müssen nach jeder Trennung geleert / auf Null gesetzt werden). Ich habe die Methode displayData
geändert, die nach jedem characteristicRead
aufgerufen wird:
öffentlich
%Vor%Anstatt die UUID zu füllen, fülle ich das entsprechende Element von mCharValues
%Vor%ExpandableListView.OnChildClickListener
auskommentiert.
Abgesehen von dem, was ich hier vorgestellt habe, habe ich den Rest des Codes ziemlich gleich gelassen. Tags und Links java android priority-queue bluetooth-lowenergy android-bluetooth