我一直在观看iBeacons上的一些教程。我有几个问题。我想知道iBeacon是否有可能收集数据并将其传输到我的应用程序。而且,我将如何实现这一目标? 我是否必须修改iBeacon本身,或者是否已经存在某些类型的信标,这些信标能够收集数据并将其传输到应用程序。我知道这是很多问题,但请帮助我。
非常感谢任何建议或意见。
提前致谢!
答案 0 :(得分:1)
iBeacons通常是发射器或发射器。因此,从技术上讲,您无法通过iBeacons发送数据(如String)。发射器只传输数据,因此它不会监听任何事情。同样,观察者只是在听任何灯塔,所以不能发出任何东西。所以你通过使用iBeacons实现的是非常有限的(观察者只观察发射器在哪里,发射器没有看到任何东西)
然而,我使用迷你黑客来实现你想要的两个iPhone之间的东西(蓝牙+ wifi需要打开)..首先,我使用this guide并使用iBeacons设置2个不同的应用程序。一个是观察者,另一个是发射器。然后,我将它们组合成1个应用程序(因此,我有一个用于观察者的块和另一个用于发送器的块)。然后我将观察者块放在一个函数中,将发送器块放在另一个函数中。我写了一个非常简单的for循环切换边(我声明了一个数字,例如.1,直到1000,检查奇数/偶数:n % 2 == 0 will be true if n is even and false if n is odd
)并将函数放入括号中。
我想强调的是,对于上述方法,大多数情况下,一方只会看到另一方(因为它们会在一个循环中以超快速且连续的方式在观察者和发射器之间切换。
然后我使用Multipeer Connectivity(请注意:MPC uses both Bluetooth and WiFi to connect nearby devices
)。意识形态是一样的。一方传输数据&另一边观察它。这是我完成的第一个项目之一,所以我已经丢失了代码,但我会尝试向你解释..
onButtonClick() {
MultipeerConnectivityStartObserving()
for var i = 1; i > 1000; i++ {
if (i % 2 == 0) {
iBeaconStartObserving()
} else {
iBeaconStartTransmitting()
}
// As soon as one client (iBeacon observer) sees
// the transmitter (iBeacon), start the MPC transmitter on the
// client who observed.
// *Remember that both clients were observing for MPC interaction
// from the very beginning.
// As the client who observed iBeacon transmitter will start sending
// data (e.g id) through MPC, and as the other client was already
// observing for MPC data, they will hand-shake and data would be sent
}
}
这是实现你想要实现的目标的非常原始的方式,但是我已经接近9/10成功进行了10秒的搜索。希望这可以帮助。请让我知道它是怎么回事:)
有用的教程:
答案 1 :(得分:1)
重要的是要理解标准的 iBeacons只是传输。他们所做的只是以每秒10次的速率发送一个由三部分组成的唯一标识符。而已。这就是他们所做的一切!
还有其他类型的蓝牙LE信标,如AltBeacon和Eddystone,但它们的行为方式基本相同 - 只是传输标识符。信标通常不收集任何信息。它们传输到您的应用程序的所有内容都是唯一标识符,用于告知您的应用程序它位于该唯一信标的位置附近。
您当然可以构建自定义硬件设备,从传感器收集信息并通过蓝牙将其传输到您的应用程序,但这些设备不符合信标概念。