BeaconManager 0.5

BeaconManager 0.5

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最新发布2017年1月

Callum HenshallPaul AigueperseSimon GUEROUT维护。



  • 作者
  • Callum Henshall

RABeaconManager

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。