MinewBeaconAdmin 开发套件APi说明

你可以使用此SDK对周围的Beacon进行诸如:uuid,major,minor等等参数配置。当前使用四个类实现这部分功能。

安装

CocoaPods

MinewBeaconAdmin可通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中,然后导入 <MinewBeaconAdmin/MinewBeaconAdmin.h>:

pod 'MinewBeaconAdmin'
1

手动添加

下载项目,并将MinewBeaconAdmin.framework拷贝到项目工程目录下,添加到工程中,然后导入<MinewBeaconAdmin/MinewBeaconAdmin.h>。

#import <MinewBeaconAdmin/MinewBeaconAdmin.h>
1

要求

限制最低系统版本为 iOS 10.0 ;

类概述

MinewBeaconManager

用于扫描设备的管理类;

功能:

  1. 发起扫描/停止扫描;
  2. 获取当前扫描范围内设备/获取全部扫描过的设备;
  3. 获取当前蓝牙状态;
  4. 监听设备进出状态(代理回调);
  5. 更新扫描到设备的数据(代理回调);
  6. 监听蓝牙状态改变(代理回调);

MinewBeacon

扫描到设备的数据模型类

此类所有属性均为只读,底层将会周期性更新每个设备的最新数据(如果它没有离开扫描范围的话)。

功能:

  1. 导出设备数据为JSON字符串;
  2. 支持导入JSON字符串;

MinewBeaconConnection

设备与iPhone之间连接状态以及数据更新的维护类

每一个此类实例都对应一个MinewBeacon和MinewBeaconSetting(连接状态下)实例。

功能:

  1. 连接到某个设备/断开与某个设备的连接
  2. 更新属性“MinewBeaconSetting”的改动到设备(回调方法返回是否成功更新)

MinewBeaconSetting

连接到设备后的数据模型

此类只能在Connection实例发起连接并且连接成功后获取,部分属性可修改,修改后会临时缓存,只有通过Connectino实例成功更新到设备改动才会生效。

功能:

  1. 导出数据为JSON字符串;
  2. 导入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;
1
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);
  }
}
1
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!");
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

设备关机功能

目前只有 B9-9 的设备具备关机功能

if ([_connection.setting.model containsString:@"MiniBeacon_B9_9"]) {
    [_connection writeDeviceOffWithPasswork:string];
}
1
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 新增关机功能
上次更新:: 2021/4/21 上午11:28:48