Für eines meiner Projekte möchte ich derzeit eine ionische Anwendung erstellen, die einmal für iOS- und Android-Plattformen programmiert werden kann. Ich suche nach einer Möglichkeit, die Entfernung zwischen zwei mobilen Geräten zu messen. Ein Gerät sollte an einem bestimmten Ort platziert werden, und das andere sollte erkannt werden, wenn es in den Bereich des ersten Geräts (oder genauer gesagt, des Ortes, an dem sich das erste Gerät befindet) eintritt.
Gerät 1 an einem bestimmten Ort wird mit dem Internet verbunden, dasselbe gilt für das Gerät 2, das den Ort besucht.
Ich habe bereits viele verschiedene Implementierungen gelesen, aber meistens benötigt es nativen Code entweder für Android oder für iOS.
Hier sind die Lösungen, die ich bereits gefunden habe:
Mir gehen die Ideen aus. Die Implementierung sollte in Javascript sein, um einen schnellen Prototyp zu programmieren, so dass die Optionen begrenzt sind.
Ich habe einen Beitrag auf StackExchange gelesen: Stack , aber das Problem ist, dass keine Implementierung beschrieben wird.
Mit anderen Worten, ich möchte ein Check-in-System wissen, dass Gerät 2 an Ort und Stelle von Gerät 1 ging. Auch bei einem Austausch zwischen einer API, die unsere Server anfragt, wie könnten wir sicher sein, dass zwei Geräte geschlossen sind oder zumindest Gerät 2 ging an einem bestimmten Ort?
Um Menschen, die die gleiche Situation haben, mehr Möglichkeiten zu geben, kontaktierte ich jemanden, der bei Microsoft arbeitet, und ein Projekt namens ThaliProject, das Sie bei Google finden, einer PeerToPeer-Bibliothek für die Kommunikation zwischen mobilen Geräten. Aber es ist keine Lösung für dieses Problem:
Leider wird Thali dein Problem nicht lösen. :( Wir sind abhängig von Bluetooth 4.2 Unterstützung auf Android (so können wir sowohl eine BLE-Zentrale und peripher).
Bluetooth funktioniert auch nicht, wenn Sie Dinge benötigen, die zwischen einem funktionieren Android- und iOS-Gerät, da Apple eine proprietäre Variante von Bluetooth funktioniert nicht.
Jetzt funktioniert BLE zwischen Android und iOS. Und während viele Android Telefone können keine peripheren sein, die meisten von ihnen können eine zentrale sein.
Eine andere Möglichkeit, mit der verschiedene Leute herumspielen, ist klingen. Etwas wie Zypern . Eine Zahl von Gruppen haben mit lokaler Entdeckung durch Ultraschall experimentiert Kommunikation. Sende einfach die Challenge und erhalte die Antwort Ultraschall und du hast bewiesen, dass Gerät 1 und 2 sehr nah sind einander.
Ich habe zufällig eine JavaScript-Bibliothek namens SonicNet.JS gefunden, die in der Lage ist, Daten und Strings per Ultraschall zu senden, aber ich kämpfe wirklich, damit es auf meinem Computer funktioniert. Dies könnte eine Lösung sein und Interoperabilitätsprobleme vermeiden.
Sie können das Bluetooth Low Energy Plugin für Cordova ( Ссылка ) verwenden. Es funktioniert hauptsächlich für Android und iOS.
Natürlich sollten die Geräte BLE unterstützen, aber es ist der Fall von zahlreichen neuen Smartphones.
Sie können damit beginnen, mit evothings.ble.startScan(success, error)
zu scannen und dann mit den Werten RSSI
und txPower
den Abstand zwischen den Geräten zu ermitteln.
Tags und Links javascript ionic-framework bluetooth-lowenergy ibeacon indoor-positioning-system