Zer*_*ero 10 javascript bluetooth-lowenergy indoor-positioning-system ibeacon ionic-framework
对于我的一个项目,我目前想要构建一个Ionic应用程序,为iOS和Android平台编写一次代码.我正在寻找一种方法来衡量两个移动设备之间的距离.一个设备应放置在特定位置,另一个设备应在进入第一个设备的范围(或更具体地说是第一个设备所在的位置)时检测到.
特定位置的设备1将连接到互联网,对于访问该位置的设备2也是如此.
我已经阅读了很多不同的实现,但大多数时候它需要Android或iOS的本机代码.
以下是我已经找到的解决方案:
我实际上已经没想完了.实现应该在Javascript中编写快速原型,以便限制选项.
我在StackExchange上看了一篇帖子:Stack,但问题是没有描述任何实现.
换句话说,我希望检入系统知道设备2在设备1的位置.即使在请求我们的服务器的API之间进行交换,我们怎么能确定两个设备是关闭的,或者至少设备2已关闭在特定的位置?
为了给那些可能面临同样情况的人提供更多选择,我联系了在微软工作的人和一个叫做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库,它能够通过超声波发送数据和字符串,但实际上我正在努力让它在我的计算机上运行.这可能是一种解决方案,可以避免互操作性问题.
您可以使用Cordova 的蓝牙低功耗插件( https://github.com/evothings/cordova-ble )。它主要适用于 Android 和 iOS。
当然,设备应该支持 BLE,但许多新型智能手机都支持这种情况。
您可以首先使用 扫描周围evothings.ble.startScan(success, error),然后使用RSSI和txPower值来获取设备之间的距离。