自从四月兄弟推出了自己的SDK之后,就收到很多人的反馈说不知道该怎么用,今天我们就介绍一下如何使用四月兄弟iOS版的SDK.
SDK能做什么
- 后台监听区域(region)
- 扫描指定区域的iBeacon
- 扫描四月兄弟的iBeacon
- 添加\删除自定义Beacon名字过滤
- 查看iBeacon信息
- 将手机伪装成一个iBeacon
- 修改单个iBeacon的信息(uuid、major、minor、password、measured power、tx power、adinterval、firmwareRevision、manufacturerName等等)
- 给iBeacon发送AT指令
如何使用上面那些功能
后台监听区域(region)
- 实例化一个ABBeaconManager对象,实现ABBeaconManagerDelegate协议
- 调用ABBeaconManager的
startMonitoringForRegion
方法,传入需要监测的region - 实现ABBeaconManagerDelegate协议中的
didEnterRegion
和didExitRegion
方法,根据你的实际需要决定是否两个方法都需要重写。 - 如果需要进行错误处理的话可以重写
monitoringDidFailForRegion
方法 - 为了达到能在App不启动的情况有回调,ABBeaconManagerDelegate协议必须实现在App刚启动时会创建的类中,比如AppDelegate,第一个界面类以及其他能够在App启动时创建的类中,否则即使监测到了区域也无法产生回调。
扫描指定区域的iBeacon
- 实例化一个ABBeaconManager对象,实现ABBeaconManagerDelegate协议
- 调用ABBeaconManager的
startRangingBeaconsInRegion
方法,传入需要监测的region - 实现ABBeaconManagerDelegate协议中的
didRangeBeacons
方法 - 如果需要进行错误处理的话可以重写
rangingBeaconsDidFailForRegion
方法 - 与后面后台监测不同的是,ABBeaconManagerDelegate协议可以实现在任何类中。App退出后这个方法
不会被调用
扫描四月兄弟的iBeacon
- 实例化一个ABBeaconManager对象,实现ABBeaconManagerDelegate协议
- 调用ABBeaconManager的
startAprilBeaconsDiscovery
方法 - 实现ABBeaconManagerDelegate协议中的
didDiscoverBeacons
方法 - 与上面不同的是,这个是专门查找四月兄弟出品的iBeacon的
添加\删除自定义Beacon名字过滤
- 通过蓝牙方式搜索Beacon的时候只能搜索到四月兄弟自己的Beacon,为了方便用户使用我们的SDK,添加了自定义的名字过滤。
- 使用ABBeaconManager的
addCustomBeaconNameFilter:
的方法添加需要扫描的Beacon的名字前缀,添加之后只要包含此前缀名字的Beacon都能通过startAprilBeaconsDiscovery的方法扫描到。 - 如果不想再扫描到对应名字前缀的Beacon,可以使用
removeCustomBeaconNameFilter:
方法移除。只支持移除用户通过addCustomBeaconNameFilter:
添加的名字。
查看iBeacon信息
- 通过扫描指定区域发现的beacon只能获取到beacon的uuid、major、minor、rssi、distance、proximity信息
- 通过扫描四月兄弟的iBeacon可以获取到CBPeripheral对象的所有信息,使用ABBeacon的peripheral属性。同时还可以获取到固件的版本(firmwareRevision)和制造商名字(manufacturerName)信息。
将手机伪装成一个iBeacon
- 实例化一个ABBeaconManager对象,实现ABBeaconManagerDelegate协议
- 调用的
startAdvertisingWithProximityUUID:major:minor:identifier:
- 如果不再需要伪装了,可以调用
stopAdvertising
方法
修改单个iBeacon的信息
- 只有通过startAprilBeaconsDiscovery找到的iBeacon的信息才可以被修改
- 调用ABBeacon的
connectToBeacon
方法连接iBeacon - 在写入新的值之前需要先调用
authBeaconWithPassword
方法先验证密码 - 接下来就可以调用各种wirte方法写入不同的值了
- 写入成功之后使用resetBeaconWithCompletion方法重启iBeacon,可以在多个值写入完成之后一次性重启
给iBeacon发送AT指令
- 调用
writeBeaconCommand
方法写入AT指令。 - 支持的AT指令,其中RESET和AUTH都已经有方法(resetBeaconWithCompletion,authBeaconWithPassword)可以直接调用
如果不再需要执行某个操作了,可以调用相应的stop方法来停止,这里就不一一介绍了。
哪里可以下载文中的 SDK?
在这个页面底部 http://aprbrother.com/service.htm
我通过这个sdk修改AprilBeacon的proximityUUID,major等信息,第一次告诉我没有读的权限,但是修改成功;但今天怎么都提示Writing is not permitted.没办法修改,连接后已经密码认证通过了,请问这是什么原因。另外同样的密码,我用你们发布的AprilBeacon的app去修改,提示我密码不正确。