Appearance
智石科技 BrightSDK
简介
智石开发包(BrightSDK)符合苹果的iBeacon协议、Google的eddystone协议,提供了扫描iBeacon、eddystone协议设备、配置BrightBeacon设备参数、模拟iBeacon等API。你可以访问智石官网了解更多设备信息。
集成指南
集成SDK(任选其一)
方式1:使用CocoaPods集成
添加以下代码到您Pod项目的Podfile文件:
bash
pod 'BrightSDK'
在Podfile文件目录运行命令: (PS:请事先更新你本地的CocoaPods库:pod repo update,并pod install)
BASH
pod update
方式2:使用常规集成
使用如下步骤手动集成:
- 如果您还尚未下载SDK,请 点击这里下载,或在GitHub搜索BrightBeacon。
- 将下载的SDK文件解压,拖动里面的BrightSDK文件夹(内含include文件夹和.a库文件)到工程中
- 拖到工程中后,弹出以下对话框,勾选"Copy items into destination group's folder(if needed)",并点击“Finish“按钮,
注意:请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。
- 注意:如果出现头文件无法找到,前往 project settings 的 build settings,搜索Header Search Paths. 添加"$(SRCROOT)/../BrightSDK/include",并检查实际目录地址。
配置定位权限
iOS8以上版本需要配置定位权限:
- 打开Info.plist添加使用期间“WhenInUse”定位描述说明:NSLocationWhenInUseUsageDescription,(填写描述如:用于扫描iBeacon设备)
- 若应用需要区域监听功能,需使用后台及使用期间定位权限“Always”(含“WhenInUse”),需添加3项以支持不同IOS版本:NSLocationAlwaysAndWhenInUseUsageDescription、NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription
配置APPKEY
如果要连接配置BrightBeacon设备参数,需要先调用以下方法:
objective-c
#import "BRTBeaconSDK.h"
//如需配置设备,请注册appKey.
[BRTBeaconSDK registerApp:(NSString *)appKey onCompletion:(BRTCompletionBlock)completion];
**注意:**登录BrightSDK的官方网站添加应用并获取 APPKEY。如果尚未注册,请点击这里注册并创建应用 APPKEY
常见的API调用
1、扫描Regions内所有iBeacon设备
**注意:**IOS7及以上,需要定位权限,并打开蓝牙,传入扫描UUID
通过BRTBeaconRegion扫描iBeacon设备(可扫描到参数proximityUUID、Major、Minor、proximity、accuracy、rssi),建议用于iBeacon定位、签到、区域推送等场景。
objective-c
regions为BRTBeaconRegion数组(默认使用:E2C56DB5-DFFB-48D2-B060-D0F5A71096E0)
[BRTBeaconSDK startRangingBeaconsInRegions:regions onCompletion:^(NSArray *beacons, BRTBeaconRegion *region, NSError *error){
}];
//停止扫描iBeacons
[BRTBeaconSDK stopRangingBeacons];
2、扫描BrightBeacon蓝牙设备
**注意:**仅需打开蓝牙,支持配置BrightBeacon设备
IOS6及以上,蓝牙设备扫描(允许连接配置、获取蓝牙参数如mac地址、电量等功能,无法获取iBeacon的proximityUUID、proximity),建议需要用于设备连接配置、巡检等场景。 (如需后台扫描,必须限定扫描的服务,例如180a)
objective-c
uuid:
CBUUID数组,(设备广播数据中的服务,例:[[CBUUID alloc] initWithString:@"180a"];留空时能扫描所有服务,但不支持后台扫描。)
[BRTBeaconSDK scanBleServices:(NSArray<CBUUID *> *)services onCompletion:^(NSArray *beacons, BRTBeaconRegion *region, NSError *error){
}];
//停止扫描BrightBeacon
[BRTBeaconSDK stopScan];
3、监听区域方法
**注意:**IOS7及以上,需要定位权限,并打开蓝牙
如需后台监听区域,请在随App启动的类(如:appDelegate的didFinishLaunch方法)中调用regionHandler;并且handler也必须启动自行初始化,保证监听到区域自启动软件时,handler能成功回调区域相关函数。简约使用时,可以直接使用appDelegate类。
objective-c
[BRTBeaconSDK regionHandler:handler];
- 以下是在前台运行、后台或完全退出程序监听区域的回调函数,请拷贝需要的回调到handler类
objective-c
进入区域回调
-(void)beaconManager:(BRTBeaconManager *)manager didEnterRegion:(BRTBeaconRegion *)region { }
离开区域回调
-(void)beaconManager:(BRTBeaconManager *)manager didExitRegion:(BRTBeaconRegion *)region { }
屏幕点亮区域检测、requestStateForRegions回调
-(void)beaconManager:(BRTBeaconManager *)manager didDetermineState:(CLRegionState)state forRegion:(BRTBeaconRegion *)region { }
4、启动监听区域
region:需要监听的区域,支持后台监听(<=20),当进入、离开区域时,APP会后台自启动,你有约10s处理相关逻辑。在IOS8以上startMonitoringForRegions内会调取系统获取定位权限。你也可以自行控制调取弹窗时机或权限类型。
objective-c
//ios8以上自行获取权限方式
[[[BRTBeaconSDK Share] brtmanager] requestAlwaysAuthorization];
objective-c
//监听区域示例
BRTBeaconRegion *region = [[BRTBeaconRegion alloc] initWithProximityUUID:@"这里传人需要监听的iBeacon设备的UUID" identifier:@"区域唯一标识符,会覆盖已有相同id的区域"];
region.notifyOnEntry = YES;//监听进入区域
region.notifyOnExit = YES;//离开区域时回调
region.notifyEntryStateOnDisplay = YES;//是否锁屏唤醒时,监测区域状态
[BRTBeaconSDK startMonitoringForRegions:@[region]];
5、立即监测区域状态
objective-c
[BRTBeaconSDK requestStateForRegions:@[region]];
6、监听的所有区域
objective-c
[[[BRTBeaconSDK Share] brtmanager] monitoredRegions];
[[[BRTBeaconSDK Share] brtmanager] rangedRegions];