Entfernung zwischen zwei mobilen Geräten in Javascript (Ionic)

9

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:

  • Bluetooth: Jedes Mobiltelefon verfügt über Bluetooth. Daher sollte es nicht schwierig sein, das Telefon zu erkennen, sobald ein Telefon sich in der Nähe befindet. Es ist jedoch nicht möglich, die Entfernung zu messen zwischen zwei Geräten.
  • iBeacons und BLE: Wir möchten vermeiden, dass wir beim Start viele Beacons kaufen müssen. Das heißt, wir möchten eine mobile App erstellen, die wie ein Beacon funktioniert, aber auf vielen Geräten nicht auf Android möglich ist. Darüber hinaus sind uns Mikrolagen egal, was bedeutet, dass wir Beacons nicht zu 100% ihres Potenzials nutzen werden.
  • GPS: Nicht wirklich gut in einem Sicherheitsaspekt, um beiden Geräten zu versichern, dass der Standort der gute ist.
  • Manuelles Einchecken an Ort und Stelle: Der beste Weg, um sicher zu gehen, dass das Gerät 2 an Ort und Stelle von Gerät 1 gegangen ist, wäre eine manuelle Überprüfung bei Lage. Aber das ist irgendwie frustrierend, weil es nicht innovativ ist alles.

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?

BEARBEITEN & amp; NACHRICHTEN

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.

    
Zero 14.03.2017, 22:32
quelle

1 Antwort

-1

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.

    
L. CWI 23.03.2017 10:08
quelle