Ich habe versucht, eine Chrome-App zu erstellen, die die chrome.bluetooth-API verwendet, um eine Verbindung zu erstellen und mit ihr zu kommunizieren Texas Instruments CC2541 SensorTag Gerät.
Der Code erkennt das SensorTag und ruft die Geräteinformationen ab, aber die auf dem Gerät aufgerufenen Methoden "getProfiles" und "getServices" geben beide leer zurück, und die Methode "connect" gibt den Fehler "Profile not found: invalid uuid" .
Ich habe mehrere Variationen von UUIDs aus dem Beispiel der SensorTag Android App ausprobiert (wie in der Code), aber alle geben den gleichen "ungültigen uuid" Fehler.
Auch wenn Sie dieses spezielle Problem nicht beheben können, wäre es gut, von jedem zu hören, der die chrome.bluetooth-API überhaupt genutzt hat. Meine bisherige Erfahrung ist, dass es zu sehr ein bewegliches Ziel ist, um es wirklich zu benutzen (ja, ich weiß, es ist nur 'Dev' ...), aber ich würde es wirklich gerne funktionieren lassen, wenn es möglich wäre.
>Danke, dass Sie gesucht haben - jede Hilfe oder Ideen, die Sie sehr schätzen!
BEARBEITEN: Zusätzliche Plattforminformationen
Ich habe das zunächst unter Windows 7 mit einem CSR 4.0 Bluetooth Dongle versucht, aber das stellt sich als völlig vergeblich heraus: Mit dem generischen Windows 7 BT-Treiber kann Chrome den Adapter erkennen und BT-Geräte erkennen, aber der Treiber unterstützt Low Energy nicht kann das Gerät, das ich möchte, nicht erkennen. Mit dem CSR-Treiber, der LE unterstützt und den ich unter Windows "Bluetooth-Geräte" verwenden kann, um eine Verbindung zu LE-Geräten herzustellen, kann Chrome.bluetooth den Bluetooth-Adapter überhaupt nicht erkennen.
Ich arbeite jetzt mit einem Acer C720 Chromebook, das aussieht, als sollte es funktionieren, aber ich bekomme einfach die "Ungültige UUID" Nachricht, was immer ich versuche.
(Obwohl die Chrome OS- und Win / Mac / Linux-Entwicklerversionen von Chrome nicht mit den Updates übereinstimmen - Chrome OS war eine Zeitlang hinter den anderen zurück, hat jetzt aber aufgeholt - also für eine Zeit, die ein anderes Format erfordert. manifest.json 'Dateien, um die App auf den verschiedenen Plattformen zu starten.)
main.js
%Vor%index.html
%Vor%manifest.json
%Vor%background.js
%Vor%Ich stieß auf dasselbe Problem. Nach einigem Graben konnte ich zwei Probleme mit dem Muster feststellen, das ich benutzte.
Das erste Problem ist, dass sich herausstellt, dass ein leeres "Bluetooth" -Objekt im Manifest nicht wirklich gültig ist, obwohl es Beispiele gibt, die es benutzen und Chrome sich nicht beklagen:
%Vor%Stattdessen sollte Ihr Bluetooth-Manifest-Eintrag in etwa so aussehen:
%Vor%Die Dokumentation dafür, so dass es ist, kann in diesem Chrome-Commit vor zwei Wochen gefunden werden: Ссылка
Die andere Idiosynkrasie dieser API, die ich beim Nachverfolgen dieses Problems entdeckt habe, ist, dass nicht nur der Verbindungsaufruf Fehler in "chrome.runtime.lastError" hinterlassen kann, sondern dass alle diese Aufrufe Nachrichten hinterlassen können. Wenn Sie lastError nach Ihrem addProfile-Aufruf überprüfen, werden Sie wahrscheinlich feststellen, dass sich chrome über Berechtigungen beschweren: "Berechtigung zum Hinzufügen eines Profils verweigert."
Gehen Sie zurück und lesen Sie die chrome.bluetooth API-Dokumentation, die es tatsächlich in der Beschreibung oben steht (obwohl ich es genauso vermisst habe wie Sie)
Verwenden Sie die chrome.bluetooth-API, um eine Verbindung zu einem Bluetooth-Gerät herzustellen. Alle Funktionen melden Fehler über chrome.runtime.lastError.
(Hervorhebung hinzugefügt) Ссылка
Hoffe, das hilft.
Eine andere Lösung gefunden scheint auch gut: www.github.com/bcsphere/bluetooth
Es unterstützt iOS / Android Bluetooth JS API. Es unterstützt nicht nur BLE / GATT, sondern auch BT2.1 classic (um zB Serial port / rfcomm profile zu unterstützen).
Sie implementieren sogar einige Service- / Profilbibliotheken. Ссылка
Verschiedene Arten von Open-Source-Beispielen: Ссылка
Tags und Links javascript bluetooth bluetooth-lowenergy google-chrome-app