Javascript 中两个移动设备之间的距离(Ionic)

问题描述 投票:0回答:2

对于我的一个项目,我目前想要构建一个 Ionic 应用程序,以便为 iOS 和 Android 平台编写一次代码。我正在寻找一种方法来测量两个移动设备之间的距离。一个设备应放置在特定位置,而另一个设备应在进入第一个设备的范围(或更具体地说是第一个设备所在的位置)时被检测到。

位于特定位置的设备 1 将连接到互联网,访问该位置的设备 2 也将连接到互联网。

我已经阅读了很多不同的实现,但大多数时候它需要适用于 Android 或 iOS 的本机代码。

以下是我已经找到的解决方案:

  • 蓝牙:每部手机都有蓝牙,所以一旦手机靠近另一部手机,应该不难检测到,但这意味着与另一台设备配对,并且实际上无法测量两个设备之间的距离.
  • iBeacons 和 BLE: 我们希望避免在发布时购买大量信标。这意味着我们希望创建一个移动应用程序来充当信标,但在许多设备上的 Android 上这是不可能的。此外,我们不关心微位置,这意味着我们不会 100% 发挥信标的潜力。
  • GPS: 在安全方面不太好,无法确保两台设备的位置都是正确的。
  • 在位置手动签入: 确保设备 2 进入设备 1 的位置的最佳方法是在 地点。但这有点令人沮丧,因为没有创新 全部。

我实际上已经没有主意了。实施应该使用 Javascript 来编写快速原型,因此选项是有限的。

我读过 StackExchange 上的一篇文章:Stack,但问题是没有描述实现。

换句话说,我希望签入系统知道设备 2 位于设备 1 的位置。即使在请求我们服务器的 API 之间进行交换,我们如何确保两个设备已关闭或至少已关闭设备 2 到达了特定位置?

编辑与新闻

为了给可能面临同样情况的人提供更多选择,我联系了在 Microsoft 工作的人以及一个名为 ThaliProject 的项目,您可以在 Google 上找到该项目,它是一个用于在移动设备之间进行通信的 PeerToPeer 库。但它不适合这个问题:

不幸的是,Thali 无法解决您的问题。 :( 我们依赖 Android 上的蓝牙 4.2 支持(因此我们既可以成为 BLE 中心,也可以成为 外围)。

如果您需要在设备之间工作,蓝牙也将无法工作 Android 和 iOS 设备,因为 Apple 使用专有的变体 蓝牙不起作用。

现在 BLE 可以在 Android 和 iOS 之间工作。虽然很多 Android 手机不能是外围设备,大多数都可以是中央设备。

不同的人正在尝试的另一种可能性是 声音。就像是 https://developers.google.com/nearby/messages/overview?hl=en。一个号码 的小组一直在尝试通过超声波进行局部发现 沟通。只需发送挑战并获得响应即可 超声波并且您已经证明设备 1 和 2 非常接近 彼此。

我偶然发现了一个名为:SonicNet.JS 的 JavaScript 库,它能够通过超声波发送数据和字符串,但实际上我很难让它在我的计算机上运行。这可能是一个解决方案并避免互操作性问题。

javascript ionic-framework bluetooth-lowenergy ibeacon indoor-positioning-system
2个回答
0
投票

您可以使用Cordova 的蓝牙低功耗插件 (https://github.com/evothings/cordova-ble)。它主要适用于 Android 和 iOS。

当然,设备应该支持 BLE,但许多新智能手机都是如此。

您可以先使用

evothings.ble.startScan(success, error)
扫描周围,然后使用
RSSI
txPower
值来获取设备之间的距离。


0
投票

来自 wifi 设备的 Time of Fly 怎么样?基本上,设备 A 上的应用程序需要发送信号。设备 B 接收它并返回带有签名的信号。设备A接收到它并根据时间流逝计算距离。

或者使用这里的API怎么样? https://indoor.here.com/#/。思路是gps+高精度地图。我知道您已经考虑过 GPS。但高清地图为您提供了一种验证设备接收到的 GPS 信息的方法,从而解决您的安全问题。

© www.soinside.com 2019 - 2024. All rights reserved.