测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | Apache 2 |
发布最新发布 | 2017年1月 |
由Callum Henshall,Paul Aigueperse,Simon GUEROUT维护。
RABeaconManager 是一个易于使用的库,它允许您在前台和后台检测蓝牙标签和 iBeacon,为您完成所有繁重的工作。
要导入 Beacon 管理器代码
#import "RABeacons.h"
这可以一次性导入所有所需文件。
设置 BeaconManger 的首选位置是从您应用的 App Delegate 的 application:didFinishLaunchingWithOptions:
开始,这允许您在每次应用启动时更新 BeaconManager 的设置。
此代码将配置 BeaconManager 使用指定的 UDID 搜索标签。
if ([RABeaconManager sharedManager].beaconServices.count != 1)
{
[[RABeaconManager sharedManager] removeAllServices];
RABeaconService *beaconService = [[RABeaconService alloc] initWithName:@"Test Beacon"
uuid:[[NSUUID alloc] initWithUUIDString:@"7265656C-7941-6374-6976-652055554944"]];
[[RABeaconManager sharedManager] addBeaconService:beaconService];
}
[[RABeaconManager sharedManager] setBeaconDetection:YES iBeacons:NO inBackground:YES];
要一检测到标签或 iBeacon 就通知您,请将以下代码添加到适当的位置
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(beaconsDetectedUpdate:)
name:BeaconManagerBeaconsDetectedChangedNotification
object:nil];
别忘了实现通知的处理程序
- (void)beaconsDetectedUpdate:(NSNotification *)notification
{
// Beacons array did update
// check [RABeaconManger sharedManager].detectedBeacons for any beacons in range
}
完成扫描后,您可以通过调用以下代码轻松停止它:
[[RABeaconManager sharedManager] removeAllServices];
更多信息请参阅 文档 或 演示项目。
为了让您的应用作为标签广播,您必须确保设置几个变量(这是一个例子,请使用您自己的值!)
[RABeaconManager sharedManager].peripheralName = @"Test Beacon";
[RABeaconManager sharedManager].peripheralServiceUUID = @"00000000-0000-0000-0000-000000000000";
然后,您可以通过调用以下代码启用广播:
[RABeaconManager sharedManager].advertisePeripheralWhenBeaconDetected = YES;
您可以通过调用以下代码来禁用它:
[RABeaconManager sharedManager].advertisePeripheralWhenBeaconDetected = NO;
为了在后台检测标签,您需要在应用的 info.plist
中添加 UIBackgroundModes
bluetooth-central
密钥。
为了在后台检测 iBeacon,您需要在应用的 info.plist
中添加 UIBackgroundModes
location
密钥。
当检测到标签时,您需要从后台应用中广播标签,请确保添加 UIBackgroundModes
bluetooth-peripheral
密钥。
从 iOS 8 开始,不要忘记根据需要填写以下
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
密钥。
有关如何使用此库的信息,请参阅 文档,但如果这还不足以解决您的问题,提供的一个演示项目允许您检测标签和 iBeacon。