Loopd-iOS-SDK 1.2.3

Loopd-iOS-SDK 1.2.3

测试已测试
Lang语言 Obj-CObjective C
许可协议 MIT
Released最后发布2017年11月

Derrick Chaochinkal 维护。



  • 作者
  • Derrick

iOS-Loopd-SDK

CI Status
Version
License
Platform

描述

Loopd Beacon SDK 提供了与 Android/iOS 设备上的 Loopd Beacons 交互的接口,包括测距、连接以及 Loopd Beacons 之间读写数据。

要求

版本 最低 iOS 目标
1.x iOS 8

安装

将 ./Pod/LoopdSDK.framework 文件拖放到您的项目中。

用法

从代码库中克隆,以及 Example 目录中的示例项目。

LCBadgeManager

LCBadgeManager 是一个基础管理器,帮助开发者控制 Loopd 徽章。

@interface ViewController () <LCBadgeManagerDelegate>
@property (strong, nonatomic) LCBadgeManager *badgeManager;
@end

- (void)viewDidLoad {
    [super viewDidLoad];

    self.badgeManager = [LCBadgeManager new];
    self.badgeManager.delegate = self;
    [self.badgeManager startScan];
}

你也可以对它设置限制。

// config
LCScanningConfig *scanningConfig = [LCScanningConfig new];
scanningConfig.RSSI = -50;
scanningConfig.isAllowDuplicatesKey = YES;

[self.badgeManager startScanWithConfig:scanningConfig];

尝试连接到徽章。
连接后,您可以执行徽章的命令。

#pragma mark - Badge Manager Delegate

- (void)badgeManager:(LCBadgeManager *)badgeManager didDiscoverBadge:(LCBadge *)badge {
    [self.badgeManager connectBadge:badge];
}

- (void)badgeManager:(LCBadgeManager *)badgeManager didConnectBadge:(LCBadge *)badge {
    // turn on red LED
    [self.badgeManager executeCommandCode:@"0F"];
}

LCBadgeManagerDelegate

@protocol LCBadgeManagerDelegate <NSObject>
@optional
- (void)badgeManager:(LCBadgeManager *)badgeManager didDiscoverBadge:(LCBadge *)badge;
- (void)badgeManager:(LCBadgeManager *)badgeManager didConnectBadge:(LCBadge *)badge;
- (void)badgeManager:(LCBadgeManager *)badgeManager didFailToConnectBadge:(LCBadge *)badge error:(NSError *)error;
- (void)badgeManager:(LCBadgeManager *)badgeManager didDisconnectBadge:(LCBadge *)badge error:(NSError *)error;
- (void)badgeManager:(LCBadgeManager *)badgeManager didUpdateValueForBadge:(LCBadge *)badge;
@end

LCContactExchangeManager

LCContactExchangeManager 是一个帮助开发者轻松实现联系人交换的管理器。

@interface ViewController () <LCContactExchangeManagerDelegate>
@property (strong, nonatomic) LCContactExchangeManager *contactExchangeManager;
@end

- (void)viewDidLoad {
    [super viewDidLoad];

    self.contactExchangeManager = [LCContactExchangeManager new];
    self.contactExchangeManager.delegate = self;
    
    // target badge id
    NSString *badgeId = @"123abc";
    [self.contactExchangeManager startScanningWithBadgeId:badgeId];
    
    // if you need to scan all the badges, target badge id nil.
    // [self.contactExchangeManager startScanningWithBadgeId:nil];
}

#pragma mark - Contact Exchange Manager Delegate

- (void)contactExchangeManager:(LCContactExchangeManager *)contactExchangeManager
    didUpdateExchangedBadgeIds:(NSArray *)exchangedBadgeIds
                   targetBadge:(LCBadge *)targetBadge {
    // targetBadge is the current badge
    // exchangedBadgeIds is the array of other user's badge id
}

LCContactExchangeManagerDelegate

@protocol LCContactExchangeManagerDelegate <NSObject>
@optional
- (void)contactExchangeManager:(LCContactExchangeManager *)contactExchangeManager
                didDetectBadge:(LCBadge *)badge;

- (void)contactExchangeManager:(LCContactExchangeManager *)contactExchangeManager
    didUpdateExchangedBadgeIds:(NSArray *)exchangedBadgeIds;

- (void)contactExchangeManager:(LCContactExchangeManager *)contactExchangeManager
    didUpdateExchangedBadgeIds:(NSArray *)exchangedBadgeIds
                   targetBadge:(LCBadge *)targetBadge;
@end

命令

命令 动作
00 关闭两个 LEDs
FF 打开两个 LEDs
11 强制设备断开连接
A0xx 每秒广告 xx 次
07 读取联系人交换数据
[注释]: # ( 0F
[注释]: # ( F0
[注释]: # ( 100004
[注释]: # ( 10FF04
[注释]: # ( 12
[注释]: # ( 14
[注释]: # ( 20
[注释]: # ( 80
[注释]: # ( 90
[注释]: # ( 89

示例

- (void)turnOnBothLEDs {
    [self.badgeManager executeCommandCode:@"00"];
}

- (void)advertise4timesPerSecond {
    [self.badgeManager executeCommandCode:@"A004"];
}

- (void)advertise8timesPerSecond {
    [self.badgeManager executeCommandCode:@"A008"];
}

- (void)iBeaconExample {
    // 0x80+16 bytes of Data + 1byte Major ID + 1 byte Minor ID
    [self.badgeManager executeCommandCode:@"80FFEEDDCCBBAA99887766554433221100ABCD"];
}

- (void)eddystoneExample {
    // 0x90+1 byte Frame Type + PDU based on Frame type
    [self.badgeManager executeCommandCode:@"9000CEAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBB"];
}

作者

Derrick Chao, [email protected]

许可协议

Loopd-iOS-SDK 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。