ibeacon怎么使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ibeacon怎么使用相关的知识,希望对你有一定的参考价值。

参考技术A

蓝牙信标(iBeacon)是一种单向广播的蓝牙BLE(Bluetooth Low Energy)设备。

它采用一种或几种基于蓝牙BLE协议的广播协议,如Apple的iBeacon,Google的Eddystone,Radius Network的AltBeacon。这三个标准都使用BLE广播方法,蓝牙信标利用其支持的通用属性(GATT)配置文件在第37,38,39通道发送广播包。

蓝牙扫描器接收广播包,对它们进行解码,然后采取行动。

iBeacon可以做室内定位基站和室内定位标签使用,也可以基于广播协议实现微信摇一摇、消息推送、人员考勤、反向寻车、资产定位、分布式传感器等等。

iOS ibeacon 使用详解

前段时间写项目,设计到了通过蓝牙ibeacon 的方式接收数据,最开始自己都之前都没听过什么叫ibeacon,然后就开始查资料,慢慢的也了解并知道了ibeacon怎么使用了。先大概解释下ibeacon到底是个什么,在我理解ibeacon可以理解为一个发射信号的基站,类似于移动的信号塔。手机作为一个设备时,进入到了发射基站的信号覆盖范围内,那么手机就能够收到基站发出的信息,这里就是所谓的ibeacon数据。当然也要基站发送数据手机才能够接受到数据。

下面说说ibeacon的使用。

1 首先需要需要在项目plist 中配置 Privacy - Location Always Usage Description 让程序允许使用位置

2 要使用ibeacon ,需要在项目中导入  CoreLocation 框架

3 实例化一个位置管理者对象,这里叫做 CLLocationManager ,再实例化一个ibeacon 对象: CLBeaconRegion

    self.locationmanager = [[CLLocationManager alloc]
                            
                            init];//初始化
    
    self.locationmanager.delegate = self;
    _locationmanager.distanceFilter=10;//实时更新定位位置
    _locationmanager.desiredAccuracy=kCLLocationAccuracyBest;//定位精确度
    self.beacon1 = [[CLBeaconRegion alloc]
                    
                    initWithProximityUUID:[[NSUUID alloc]
                                           
                                           initWithUUIDString:BEACONUUID]
                    
                    identifier:@"media"];//初始化监测的iBeacon信息

  [self.locationmanager requestAlwaysAuthorization];

4 当位置管理者的代理被调用,知道了可以时刻使用用户的位置时然后开始读取指定beacon的数据

-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
    if (status == kCLAuthorizationStatusAuthorizedAlways) {
        
        [self.locationmanager startMonitoringForRegion:self.beacon1];//开始
        [self.locationmanager startRangingBeaconsInRegion:self.beacon1];
        
    }
}

 5 当手机进入到了硬件设备的区域之后就会收到硬件设备发出的beacon 信息

- (void)locationManager:(CLLocationManager *)manager

        didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion
                                                     
                                                     *)region{
    
    //如果存在不是我们要监测的iBeacon那就停止扫描他
    if (![[region.proximityUUID UUIDString]
          
          isEqualToString:BEACONUUID]){
        
        [self.locationmanager stopMonitoringForRegion:region];
        
        [self.locationmanager stopRangingBeaconsInRegion:region];
        
    }
    
    //打印所有iBeacon的信息
    for (CLBeacon* beacon in beacons) {
        NSLog(@"rssi is :%ld-=mj%d-====min%d",beacon.rssi,beacon.major.intValue,beacon.minor.intValue);
    }
}

如果在硬件范围内,硬件一直在发射信号,那么手机就会一直收到硬件的ibeacon数据   

 

以上是关于ibeacon怎么使用的主要内容,如果未能解决你的问题,请参考以下文章

iBeacon 监控不适用于 Cordova-plugin-ibeacon

Android 开发中 iBeacon的使用

Android 开发中 iBeacon的使用

什么是 iBeacon 蓝牙配置文件

如何理解微信公会平台摇一摇软件中的iBeacon技术

iBeacon,是不是可以获得 BLE 设备列表?