iOS iBeacon开发

1.在info.plist中添加

Privacy - Location Always Usage Description                 显示给用户看的信息    例如:将获取您的位置信息

Privacy - Location When In Use Usage Description        显示给用户看的信息    例如:将获取您的位置信息


2.添加以下头文件:

#import

#import


3.创建2个属性

@property(nonatomic,strong)CLBeaconRegion  *beaconRegion;

@property(nonatomic,strong)CLLocationManager  *locationManager;


4.初始化对象实例,并开始扫描指定UUID的Beacon

self.locationManager= [[CLLocationManageralloc]init];

self.locationManager.delegate=self;

if([[UIDevice  currentDevice].systemVersion  floatValue] >=8.0) {

          //请求允许定位通知

           [self.locationManager  requestWhenInUseAuthorization];

           //请求允许声音等通知

            [[UIApplication  sharedApplication]  registerUserNotificationSettings:   [UIUserNotificationSettings   settingsForTypes:UIUserNotificationTypeAlert  |  UIUserNotificationTypeBadge  |  UIUserNotificationTypeSound  categories:nil]];

           }

uuid是Beacon的UUID,此处为宏,identifier好像怎么设置都没影响,是一个字符串

self.beaconRegion= [[CLBeaconRegion  alloc] initWithProximityUUID:[[NSUUID  alloc] initWithUUIDString:uuid]  identifier:""];

//开始监听Beacon消息

[self.locationManager  startMonitoringForRegion:self.beaconRegion];

[self.locationManager  startRangingBeaconsInRegion:self.beaconRegion];

}


5.代理的回调方法一:进入Beacon范围内触发,后台模式也可以触发

- (void)locationManager:(CLLocationManager*)manager didEnterRegion:(CLRegion*)region {

//以下方法 目前我也未搞清楚有何用,不写也不影响的感觉

[self.locationManager  startRangingBeaconsInRegion:self.beaconRegion];

}


6.代理的回调方法二:获取Beacon的信息,例如RSSI,UUID,major,minor,accuracy(距离),后台模式不能触发,除了把整个APP设置后台一直运行

- (void)locationManager:(CLLocationManager*)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion*)region {

beacons是一个数组,一次性扫描到的beacon,大约1S回调一次这个方法

}


7.代理的回调方法三:离开Beacon范围内

- (void)locationManager:(CLLocationManager*)manager didExitRegion:(CLRegion*)region {

//以下方法 目前我也未搞清楚有何用,不写也不影响的感觉

[self.locationManager  startRangingBeaconsInRegion:self.beaconRegion];

}


注意:市场上有一些Beacon应用是可以同时搜索到Beacon的各参数,Beacon名称,传感器数据等。这里我猜测是同时运行了2种蓝牙搜索模式,BLE搜索,Beacon搜索,2个模式合并封装而成的。我也尝试过可以获取想要的各项数据。

你可能感兴趣的:(iOS iBeacon开发)