# MinewBeaconAdmin 开发套件APi说明
你可以使用此SDK对周围的Beacon进行诸如:uuid,major,minor等等参数配置。当前使用四个类实现这部分功能。
# 安装
# 手动添加
下载项目,并将MinewBeaconAdmin.framework拷贝到项目工程目录下,添加到工程中,然后导入<MinewBeaconAdmin/MinewBeaconAdmin.h>。
#import <MinewBeaconAdmin/MinewBeaconAdmin.h>
# 要求
限制最低系统版本为 iOS 10.0 ;
# 类概述
# MinewBeaconManager
用于扫描设备的管理类;
功能:
- 发起扫描/停止扫描;
- 获取当前扫描范围内设备/获取全部扫描过的设备;
- 获取当前蓝牙状态;
- 监听设备进出状态(代理回调);
- 更新扫描到设备的数据(代理回调);
- 监听蓝牙状态改变(代理回调);
# MinewBeacon
扫描到设备的数据模型类
此类所有属性均为只读,底层将会周期性更新每个设备的最新数据(如果它没有离开扫描范围的话)。
功能:
- 导出设备数据为JSON字符串;
- 支持导入JSON字符串;
# MinewBeaconConnection
设备与iPhone之间连接状态以及数据更新的维护类
每一个此类实例都对应一个MinewBeacon和MinewBeaconSetting(连接状态下)实例。
功能:
- 连接到某个设备/断开与某个设备的连接
- 更新属性“MinewBeaconSetting”的改动到设备(回调方法返回是否成功更新)
# MinewBeaconSetting
连接到设备后的数据模型
此类只能在Connection实例发起连接并且连接成功后获取,部分属性可修改,修改后会临时缓存,只有通过Connectino实例成功更新到设备改动才会生效。
功能:
- 导出数据为JSON字符串;
- 导入JSON字符串;
# 使用方法
# 扫描设备部分
MinewbeaconManager管理类来发起扫描,SDK会为扫描到的设备生成MinewBeacon实例;
// 1.获取MinewBeaconManager实例,设置代理对象
MinewBeaconManager *manager = [MinewBeaconManager sharedInstance];
manager.delegate = self;
// 2.发起扫描
[manager startScan];
// 3.通过代理方法获取扫描数据更新
// 此方法定时回调用于获取周围设备的最新扫描数据
- (void)minewBeaconManager:(MinewBeaconManager * )manager didRangeBeacons:(NSArray<MinewBeacon *> * )beacons;
/* 如果要监听设备的进出状态,可以通过实现以下方法 */
// 监听消失设备
- (void)minewBeaconManager:(MinewBeaconManager * )manager disappearBeacons:(NSArray<MinewBeacon *> *)beacons;
// 监听新发现的设备
- (void)minewBeaconManager:(MinewBeaconManager * )manager appearBeacons:(NSArray<MinewBeacon *> *)beacons;
/* 还可以监听蓝牙的状态改变 */
// 蓝牙状态:已开启,已关闭,未知
// 仅在蓝牙已开启状态下才可以正常工作
- (void)minewBeaconManager:(MinewBeaconManager *)manager didUpdateState:(BluetoothState)state;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 连接设备部分
如果要连接设备,需要用扫描获取到的MinewBeacon实例来生成一个MinewBeaconConnection实例,通过Connection来管理连接/断开/更新数据等。
// 1. 使用一个MinewBeacon实例生成Connection实例,设置代理
MinewBeaconConnection *connection = [[MinewBeaconConnection alloc]initWithBeacon:abeacon];
connection.delegate = self;
// 2. 连接设备
[MinewBeaconConnection connect];
// 3.通过代理方法获取连接状态
- (void)beaconConnection:(MinewBeaconConnection *)connection didChangeState:(ConnectionState)state
{
// 当连接成功后,connection实例的MinewBeaconSetting属性不再为空,这个MinewBeaconSetting实例就是从设备上获取到的数据信息
if(state == ConnectionStateConnected)
{
NSLog(@"已经连接到设备:%@,uuid:%@,major:%d...",connection.setting.name, connection.setting.uuid, connection.setting.major);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 配置设备部分
在connection的状态为已连接时,可以修改其属性setting的所有非只读属性,修改完毕只需执行更新方法即可将改动更新到Beacon设备,通过代理方法可以知道是否已经成功更新。
// 1.修改connection的setting属性
MinewbeaconSetting *setting = aConnection.setting;
setting.uuid = @"FDA50693-A4E2-4FB1-AFCF-C6EB07647825";
setting.major = 1234;
setting.minor = 4321;
setting.name = @"MinewBeacon";
/*.....*/
// 2.更新改动到设备
// 需要注意的是,这里的参数是Beacon设备的当前重启密码;
[aConnection writeSetting:@"minew123"];
// 3.通过代理方法获取是否成功更新改动到设备
- (void)beaconConnection:(MinewBeaconConnection *)connection didWriteSetting:(BOOL)success
{
if(success)
NSLog(@"all changes has updated!");
else
NSLog(@"update failed!");
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 设备关机功能
目前只有 B9-9和B6-B001A 的设备具备关机功能
if (_connection.setting.canBePoweredOff == YES) {
[_connection writePowerOff];
}
2
3
更多细节,详见Demo。
# 其他
MinewBeaconAdmin SDK 同样运用于我司 BeaconSET app,如需更直观的了解我司 miniBeacon 设备以及SDK相对应的功能,也可以下载 BeaconSET app 进行了解。(提示:BeaconSET app和MinewBeaconAdmin SDK 需要和我司生产的设备配套使用)
# 文档版本记录
- 2017.10.16 v1.0.0 第一版;
- 2019.12.10 v5.3.3;
- 2020.09.18 v5.3.4 ;
- 2020.11.25 优化校验距离设置;
- 2021.4.21 新增关机功能;
- 2022.4.20 新增 Info 帧支持;
- 2023.2.7 适配B6-B001A;