我想用一些蓝牙低能量开发套件创建我自己的iBeacon.Apple还没有发布iBeacons规范,但是一些硬件开发商已经反向使用AirLocate示例代码设计iBeacon并开始销售iBeacon开发套件.
那么iBeacon蓝牙配置文件是什么?
Bluetooth Low Energy使用GATT进行LE配置文件服务发现.所以我认为我们需要知道属性句柄,属性类型,属性值,以及iBeacon属性的属性权限.那么,对于UUID为E2C56DB5-DFFB-48D2-B060-D0F5A71096E0的iBeacon,主要值为1,次要值为1,蓝牙GATT配置文件服务是什么?
这是我在Apple论坛和文档讨论中做出的一些假设.
您只需要查看蓝牙外围设备的配置文件服务(GATT)即可知道它是iBeacon.
Major和Minor键在此配置文件服务中的某处编码
有些公司使用iBeacon Dev Kits似乎已经有了这个数字:
希望我们能及时在Bluetooth.org上发布这样的个人资料:https://www.bluetooth.org/en-us/specification/adopted-specifications
reverse-engineering bluetooth ios bluetooth-lowenergy ibeacon
试图掌握与ibeacon(beacon/bluetooth-le/ble)之间距离的基本概念.有关ibeacon可以测量多远的真实文档吗?可以说我距离300英尺...... ibeacon有可能检测到这个吗?
Android设备是否可以充当iBeacon并了解其他Android设备何时进入其范围?那些其他Android设备是否需要打开蓝牙?
如果客户进入我的商店并且他的设备上没有安装我的应用程序,iBeacon可以工作,还是必须先安装应用程序?有很多客户每天访问我们的商店,但如果他们没有安装我的应用程序,iBeacon概念是否有效?
android bluetooth bluetooth-lowenergy android-bluetooth ibeacon
我正在研究使用多个iBeacons来做一个"粗略"的室内位置的可能性.该应用程序是一种"博物馆"设置,并且能够更容易地形成具有不同对象的位置的网格,然后是单独的信标(尽管这也许不是不可能的).
有没有例子,经验,使用多个信标进行三角测量到某种位置,或者是一些逻辑来帮助我自己编写它的方式?
是否可以将iOS 7设备作为蓝牙LE外设(iBeacon)运行并在后台进行广告宣传?我已经能够使用下面的代码在前台做广告,并且可以从另一个iOS设备看到它但是一旦我回到主屏幕就停止广告.我确实在plist中添加了蓝牙外设背景模式,但这似乎没有帮助,虽然我得到提示说该设备想要在后台使用蓝牙.我做错了什么,或者这在iOS 7中是不可能的?
peripManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral
{
if (peripheral.state != CBPeripheralManagerStatePoweredOn) {
return;
}
NSString *identifier = @"MyBeacon";
//Construct the region
CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:identifier];
//Passing nil will use the device default power
NSDictionary *payload = [beaconRegion peripheralDataWithMeasuredPower:nil];
//Start advertising
[peripManager startAdvertising:payload];
}
Run Code Online (Sandbox Code Playgroud)
这是接收/收听端的代码:
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons
inRegion:(CLBeaconRegion *)region
{
//Check if we have moved closer or farther away from the iBeacon…
if (beacons.count > 0) {
CLBeacon *beacon …Run Code Online (Sandbox Code Playgroud) 我设法制作了一个iBeacon,当信标在范围内时,它会在我的iPhone上触发本地推送通知.当应用程序处于后台模式时,它完全正常工作.
我的问题是:即使应用程序没有运行,我是否可以触发通知,甚至不在后台运行?
我认为这是可能的,但我不确定.如果是这样,我怎么能做到这一点?
谢谢!
我一直在使用iOS设备作为广播公司和接收器使用iOS 7中的新iBeacon API.
文档没有详细说明接收设备应该看到每个接近指示器的距离,并且特别将它们称为"相对".在使用演示应用程序进行实验时,我观察了这些距离(iPhone == receiver,iPad == broadcaster):
远 - 50英尺?
近 2-3英尺
立即 - 2英寸
这对我来说似乎很小,而且CLBeaconRegion类参考中可能有一个提示,它允许您从1米远的地方指定设备的信号强度.
peripheralDataWithMeasuredPower:
检索可用于将当前设备通告为信标的数据.
参数
measuredPower
设备的接收信号强度指示(RSSI)值(以分贝为单位).该值表示距离一米远的信标的测量强度,并在测距期间使用.指定nil以使用设备的默认值.
我的业余校准产生-60,我设置并重新测试:
远 - 数百(英尺)英尺
近 - 约50英尺
立即 - 1米(稍微少)
根据Apple,我的第二次测试结果是"理想"范围吗?他们真的远离我在第一次测试中遇到的"默认"设置.
或者我应该根据我的需要考虑这些范围"可校准"?
我正在寻找一种从Android设备检测iBeacon(iOS 7.0功能)的方法.我阅读了Android文档,其中似乎iBeacon是某种GATT服务器,它发送它的位置.虽然Android文档说我不应该轮询该数据,但是对于检测,这将是必要的.
我谷歌很多,但这个话题很新(我甚至创建了一个新标签ibeacon)所以如果我从iOS世界获得一些描述实现的资源链接,我会很高兴.此外,如果有一些Android库,我还没有找到它会很好.
我买了一个开发工具包Radius Networks,包括a ioGear GBU521 BLE 4.0 dongle和a Raspberry Pi.我也买了他们的一个RadBeacon iBeacons.他们都像宣传的那样工作,但我对我得到的东西感到惊讶.
我以为RaspPi可以检测到iBeacons.相反,该套件设置为创建一个iBeacon.我的用例是检测何时forklift进入特定房间,以便我可以将工作发送给他们.我的想法是在叉车上放一个iBeacon然后把RaspPi搜索到iBeacons.当检测到iBeacon(叉车)时,您可以断定它在附近.我会将RaspPi连接到LAN并通过它传达信息REST or similar.我知道我可以放一个合适的Android or Apple device并以这种方式完成它,但我不明白为什么这个加密狗无法检测到这些iBeacons并告诉我它们UUID's是什么?我错过了什么?
我想基于BlueZ构建ac文件,但在我的系统中似乎没有bluetooth.h文件.
fatal error: bluetooth/bluetooth.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我确信蓝牙加密狗运行正常,我已经成功构建了Bluez.
更新
对于我的情况,我在/ user/include/bluetooth文件夹中找到bluetooth.h
ibeacon ×10
bluetooth ×6
ios ×4
ios7 ×3
android ×2
bluez ×1
c ×1
linux ×1
objective-c ×1
raspberry-pi ×1