蓝牙beacon基站 接入点同时可接入多少用户

营销技术 | Beacon会是营销的下一个大风口吗?
今天,基于Beacon技术的微信摇周边与万达院线合作举办020活动,看中了Beacon会成为下一个风口;未来,Beacon会给营销带来什么新的意义,它的前景又有多广?
日,基于Beacon技术的微信摇周边将与万达院线合作举办O2O活动,把Beacon技术带入到电影产业,显然腾讯也把Beacon技术视为下一个风口。梅花网之前的文章、中分别介绍了Beacon是什么以及国内实施Beacon的几个著名案例,那么Beacon的未来到底在哪里,他的出现给营销带来了什么新的意义。
先来看看Beacon带给营销的新意义
1.从过程出发的客户行为分析
一个成功的产品一定是建立在对消费者深入洞察的基础上的,于是分析消费者行为数据成为企业的必备技能,但是知道消费者的行为"是什么"往往不能给企业的决策提供足够的指导,企业还需要知道消费者行为发生的原因,而通过基于过程的消费者行为分析就能清楚"为什么"。
过去企业往往只能知道你最终购买了什么以及企业在各个产品上的销售额,却难以发现购物过程中哪些因素影响了你最终的购买决策,Beacon技术可以帮助企业分析你在商场的行走路线、在哪些产品或者区域面前逗留了更久、哪些产品之间的关联性更大,然后对比最终购买的数据就可以更详细的知道你购买一些产品的原因了,基于此指定的营销策略就更加的科学。
2.更合适的促销信息推送
有时候你的手机经常会收到根本不需要的优惠信息推送,有时候当你想要知道一些店铺的优惠信息却又不知道到哪里去查找,这就是现在营销的窘境,商家只能做到尽可能精准的信息投放,却没有办法在最合适的时候把合适的营销优惠信息告诉你。
Beacon的出现正是让促销信息的推送更加合适,一方面Beacon信息推送是实时的,当你走到那些店铺的时候才会推送,马上可以获取到任何你需要的优惠信息并做出决策;另一方面Beacon优惠信息的推送是基于一定场景的,所以它能更加精确的推送到相应的优惠信息给你,避免了推送一些你不需要的信息,提供这个情境下正确的服务,让营销能够更接近受众。
3.更有想象空间的营销方式
营销一直在变化,从乡镇时代人与人之间的面对面信息传递与沟通,到大众传媒的出现,一对多的传播模式成为主流,再到移动互联网时代回到了那个人与人之间单对单交流的时代,营销从来都没有固定的方式,Beacon技术的出现更是让营销方式有了更多的可能。
Beacon的定位能够让企业基于位置信息进行更多的互动营销,举办更加有想象力的现场活动,诸如系列前一篇中平安天下通利用Beacon的定位功能完成线下任务。我们大可想象在定位信息的帮助下,企业还可以做些什么营销活动,商场内寻宝、现场找人组队完成任务、基于位置信息签到等等,可以有很多既有效率又有乐趣的活动,让人们在不知不觉间记住了企业的信息、购买了企业的产品。
4.CRM管理的新价值
我们经常可以看到一些把CRM做到极致的案例,诸如当你走进一家餐厅,服务员记得你上次坐过的位置、点过的餐并且再推荐一些你可能会喜欢的产品,但是这些都是依靠企业员工个人记忆下来的,不仅低效而且很多企业很难做到,试想一下如果商场的服务员记得你上次购买了什么吗?显然是不可能的,但是Beacon可以做到这一点,Beacon基站就可以知道你再次走进商场并且把相应的信息发送到企业的智能系统里,当你在商场中走进一些产品的时候,可能就会提示你上次购买的产品推出新款了,也可能会提示你购买过的某款服装的设计师又设计出新的衣服啦,在Beacon系统的帮助下可以让企业为消费者提供更好地服务以及消息推荐,让CRM管理更加有效。
Beacon技术有着光明的前景,对营销也将产生极大地影响,但是实施Beacon还是有些阻碍,也是Beacon未来发展的隐忧。
1.Beacon基站建设与维护成本
Beacon的实施需要建设大量的基站来保证信号的稳定性以及覆盖面这些基站的建设以及后期的维护成本对商家都是一笔极大的负担,在beacon对企业的获利贡献不明确的情况下有多少企业愿意承担这笔支出。
2.APP开发与推广的成本
Beacon的实施还需要商家开发一个APP来接收基站发出的信号,但是APP的开发与推广需要投入大量的资源,当然现在企业有了另一种选择,就是接入支付宝、微信这样的平台软件,支付宝与微信都已经具有了非常大的用户基数,而且支付宝的AliBeacon与微信摇周边的服务都是允许商家借助自己的软件平台开发Beacon自助服务,从这个角度看APP的开发与推广就不再是大问题了,也可以看到支付宝与微信在未来O2O领域的发展前景必然是一片光明的。
3.信息骚扰与安全的考虑
想象一下当你一走进商场就不断地有各种促销信息涌入你的手机,我想这也是一件很让人崩溃的事情吧,过多的促销信息干扰会极大地降低消费者的体验,所以商家对优惠信息的推送一定要有一个度,适量并且精确,这要求商家对消费者行为进行了准确的分析与预测。
另一方面Beacon的基站信号大家都可以建立与模拟,所以难免会出现一些不法分子利用这个机会对用户推送一些乱七八糟的信息或者进行诈骗,这也让Beacon应用的安全性蒙上了一层隐忧。
4.用户习惯
Beacon的应用需要用户手机的蓝牙一直处于开启状态,而现阶段大多数用户都没有这样的习惯,因此教育人们开启蓝牙以及使用Beacon技术需要有一个漫长的过程,但这并非是不可改变的,笔者以前就没有时时查看微信的习惯,只是无奈于大家都用微信也只好养成了这样的习惯,所以无论是蓝牙开启还是使用Beacon的习惯都可以被培养,关键是养成这样习惯的驱动力与利益有多大,另外也许技术进步让蓝牙可以被替代了呢。
所以Beacon的未来有多大,你说呢?
本文为【Beacon系列文章】完结篇。
作者:梅花网 Wilbur.Yu
此文为梅花网原创,转载请联系梅花网,需注明来源。
微信公众号:梅花网·今日& 壹钱包推出超级蓝牙支付 采用beacon技术无需更换POS机
壹钱包推出超级蓝牙支付 采用beacon技术无需更换POS机
来自: 第一财经网
继壹钱包2.0上线后,中国平安旗下的移动支付应用壹钱包再出利器。6月10日,中国平安宣布壹钱包推出超级蓝牙支付,并联合万宁、许留山等品牌商家在广州、深圳两地的部分门店,开展商用试点。
据了解,在超级蓝牙的使用场景中,商家可以将产品介绍、打折促销、优惠券等相关信息,上传至壹钱包的信息平台。当使用壹钱包超级蓝牙的用户经过商家门店时,将在手机端自动接收来自商家的信息推送。而在支付环节,用户只需将手机靠近商家POS机上的超级蓝牙设备,即可快速完成付款。
对于商家而言,使用超级蓝牙,需在原来的POS机上安装一个纽扣大小的设备,无需更换POS机和扫描枪。
据平安付首席技术官郑一德介绍,超级蓝牙利用了国际领先的Beacon技术,其原理是,通过低功耗蓝牙,Beacon基站可以创建一个蓝牙信号区域,当移动智能终端进入该区域时,装有相应移动应用(APP)的终端便可通过蓝牙信号,自动接收来自商家的信息。平安付技术团队对Beacon进行了创新,实现了商家POS机和用户手机之间的双向信息传输,使beacon技术从信息推送、产品营销,拓展至支付环节,打通了购物环节的所有关键信息节点。
对于超级蓝牙与目前移动支付的多种线下支付方式的不同,包括二维码、声波、NFC等,郑一德介绍,超级蓝牙不需要商家更换收银机,不需要用户更换SIM卡手机,对于商家和用户来说,都是“举手之劳”。而且相对于二维码和声波支付,超级蓝牙更加稳定和安全。
“我们对超级蓝牙的信息传输,进行了多重加密,确保商家和用户的资金安全,并已就相关技术申请专利”。据了解,超级蓝牙还将与平安集团的大数据相结合,通过对用户个人需求、消费习惯、生活轨迹的分析,结合商家的客户关系管理工具,对有购物需求的用户进行精准、定制化的信息推送,为商家和用户带来更好的交互体验。
据了解,超级蓝牙在试点期间支持iPhone 4s以上,IOS 7.0版本以上手机。平安付方面表示,将根据商户和用户的反馈持续优化,逐步支持所有带蓝牙功能的手机,拓展更多线下使用场景。
中国平安方面表示,在国内移动支付的线下拓展陷入僵局之际,壹钱包利用超级蓝牙成功破局,改变商家与用户之间的沟通方式,提高商家和用户的交互效率,实现了O2O的重大突破,有望重新书写移动支付领域的既有格局。
本文的评论功能被关闭了.Beacon简介及简单应用_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Beacon简介及简单应用
上传于||文档简介
&&B​e​a​c​o​n​简​介​及​简​单​应​用
大小:3.82MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢您所在的位置: &
iBeacon的第一篇:基于Swift实现
iBeacon的第一篇:基于Swift实现
Magic Studio
cocoachina
低功耗蓝牙技术现在几乎是只能手机的标配。随着这一技术的发展,苹果在2013年WWDC大会上,苹果推出iBeacon技术。该技术允许开发人员开发能够使用iBeacon硬件传感器的iOS应用程序。
低功耗蓝牙技术现在几乎是智能手机的标配。随着这一技术的发展,苹果在2013年WWDC大会上,苹果推出iBeacon技术。该技术允许开发 人员开发能够使用iBeacon硬件传感器的iOS应用程序,来为相应的应用程序提供更加精准的位置信息。2014年WWDC大会上,苹果表示,对 iBeacon技术进行了改善,借助该技术,应用程序现在能够跟踪到用户所在的楼层的精确位置信息。
iBeacon的工作方式是Transmitter-Receiver,即基站-接收机模式的。基站?这个时候不要想到移动、联通的那些大铁 塔。这个基站可以是一个运行着Bluetooth 4.0
LE的设备,也可以是经过配置的iPhone、iPad。iPhone4S和之后的iPhone、iPad3或之后的iPad,包括iPad
mini都可以配置成iBeacon基站。
这里列举个iBeacon的使用场景:在房屋中介中使用。米国一家技术公司把 iBeacon
安装在要出售的房屋前,当用户开车至此,不用下车就可以用中介的 APP
获得此房屋所有相关信息和照片,不用打印及搜索。据说,效果还是很不错的,大约有一半左右的用户打开手机查看了相关信息。甚至于还有一个老外用 iBeacon做了一个实景的经营游戏,点击这里观看。
一个基站主要有三部分标识:
1. UUID,形如:206A2476-D4DB-42F0-BF73-C756。用来标识某一个公司。比如,某个房地产公司的全部的基站都用同一个UUID。
2. major,用来标识某一类的beacon。比如这个房地产公司的北京的房子都设定为1,上海的都设定为2。
3. minor,用来标识某一个特定的beacon。比如某栋楼的某个基站。
用这个房地产商开发的app就可以获取到UUID,和后面的major值和minor值。当app进入beacon的区域,探测到 UUID:&206A2476-D4DB-42F0-BF73-C756&,major为1,minor为20。那么就表明这个用户在这 个房地产商的北京楼盘的编号20的楼盘。这栋楼的说明文字、图片或者视频等就可以展现在用户面前。
下面就进入我们的教程。不过前提是你要是苹果的开发者,因为这个app需要在真机运行。然后要有2台设备,一个当基站,一个当接收机。最后,还得有一台能运行Xcode的电脑。
首先创建一个SingleView的项目,起个名字叫MyBeacon。然后把我们需要用到的Framework加进来,把CoreBluethooth.framework和CoreLocation.framework加到项目中。
创建一个Storybard,并在视图中添加如下的UIController:
关于storyboard的细节就不多说了。下面新建两个文件:TrackViewController 和
ConfigViewController 。这时候会自动生成一个 ViewControler 类。分别把他们按照上图所示对应到
stroyboard 的几个ViewController 中,并添加图中所示的 UILabel 。然后把需要现实APP运行结果的 UILabel
作为 IBOutlet 。
TrackViewController 的 IBOutlet 是这样的:(以下的两个文件都用的是Swift语言,如果你需要的话可以自行修改为OC语言)
ConfigViewController 的 IBOutlet 是这样的:
先搞定基站部分
在 ConfigViewController 中添加如下的属性:
第一个 CLBeaconRegin 属性,用来设置基站需要的 proximityUUID ,major 和 minor 的给你信息。
第二个 NSDictionary 的属性,用来获取外设的数据。
第三个 CBPeripheralManager 的属性,用来开启基站的数据传输。
这些属性后面的感叹号是Swift里的一种语法。变量或者属性的定义,在类型的后面可以是问号后者是感叹号。他们都表示这个变量或者属性可以是 有值的也可以是空值nil(注意这里的nil和OC里的nil是两回事)。但是使用问号的变量或者属性需要在使用前判断是否有值,如果有的话通过感叹号取 值。使用感叹号定义的变量或者属性则可以直接取值并使用。这里使用感叹号定义属性,这样在使用的时候可以直接取值。详细的使用会在代码中体现。
要让iOS设备开始传输信号还需要做些其他的事情。在viewDidLoad中调用几个方法才能让基站工作起来。首先调用的是initBeacon方法,之后是要把数据现实出来的setLabels方法。
在这里通过uuid字符串设定NSUUID实例。uuid字符串可以通过uuidgen命令在终端里生成。也可以通过代码生成,但是这里没有这个必要。然后其他的值major和minor分别设定为1,identifier设定为我们示例的名字。
下面我们就要考虑传输的问题了。在用户点击了传输按钮之后开始使用设备的蓝牙外设发出信号。方法如下
在这个方法里,首先通过我们设定的beaconRegion属性获得相关的外设数据。这个数据是NSDictionary类型的。需要说明的是,这个类型可以在Swift中使用,但是和Swift本身的Dictionary是不兼容的。
之后,初始化了CBPeripheralManager属性。这里简单处理,设定queue和options为nil。为了设定代理为 self 需要实现 CBPeripheralManagerDelegate protocol 。
实现了这个protocol之后,还需要实现这个protocol的一个方法。这个方法在OC里来讲是required的,所以必须实现。
外设的状态中有两个需要我们处理的。一个是PoweredOn一个PoweredOff。On了就让peripheralManager开始对 外发出信号。Off了就停止发出信号。所以呢,如果直接在transmitAction中调用代码startAdvertising是设备对外发出信号的 话,会报错。Console会打印出&CBPeripheralManager is not Powered
on&。所以我们在以上的代码中在Pwoered
On的时候再开始调用代码发出信号。发出信号的时候呢,我们给了advertising方法传入了从beaconRegion取出来的 NSDictionary数据。这也是接收机辨识基站用到的数据。
之后我们把数据显示在界面上。
这个方法很简单,只要在viewDidLoad里调用setLabels方法就可以。全部设定在基站里的数据都会显示在界面上了。其中包括 uuid、major和minor,最后是我们设定的identifier。用Swift比用OC写代码是会少一些量,如果你对Swift足够熟的话。比 如,取得一个值的字符窜值的时候就不用[NSString stringWithFormat:&...&]这么麻烦的写法了。
我们的app已经可以作为基站使用了。但是没有接收机的话这个app可是一点都不好玩。在下面就开始处理接收机的部分。
接收iBeacon信息
接收iBeacon信号的底层功能已经在Core Location Framework里实现了。在iOS7里,可以自动识别你是否进入了一个区域以及其他的距离之类的信息。
下面在TrackViewController中处理,首先把CoreLocation库的头文件加进来。然后增加下面的两个属性:
CLBeaconRegion属性是用来定义我们要寻找的beacon的。这个app只会接收到有同样的UUID的的发射机发射的信号。
CLLocationManager属性是用来建立位置服务并搜索beacon的。
在viewDidLoad方法中添加如下代码:
首先,要初始化CLLocationManager,然后把代理设置为self。当然设定代理之前我么需要实现CLLocationManagerDelegate protocol,具体的就不写出来了。然后调用initRegion方法,这个会在后面给出详情。
首先创建UUID实例。用来初始化这个实例的的uuid字符串必须和基站的uuid字符串是一样的,要不互相找不见。
然后初始化beaconRegion,proximityUUID就是前面创建的UUID实例,identitifer就是在基站中用到的 identifier字符串。然后开始监测前面初始化出来的beaconRegion。调用代码 self.trackLocationManager.startMonitoringForRegion(self.beaconRegion)开始检 测。
接下来,我们需要监测这个app进入和离开区域的事件,代码如下:
第一个方法是进入的,当你接收到基站信号的时候这个方法就开始执行(当然你要离基站足够近)。然后调用locationManager的startRagingBeaconsInRegion方法,病传入我们之前定义好的beaconRegion属性。
第二个方法很简单,就是在离开这个区域的时候就停止执行,调用locationManager的stopRagingBeaconsInRegion。
下面是didRangeBeacons方法:
首先判断方法传入的beacons数组的元素有多少。如果有0个的时候什么都不做。如果有一个或以上的话,这里简单处理只取最后一个beacon来处理。
之后的代码都只是从beacon中取出数据来现实在界面上,比如UUID,major,minor,accuracy和RSSI。这些值会随着 接收机和基站的距离不同以及基站的设置不同而一直改变。尤其accuracy和RSSI都是beacon用来现实距离的。其中proximity会显示四 个值:Unknown、Immediate、Near和Far。Immediate是半米以内,Near远一些,Far更远。RSSI是信号强度。
现在这个app可以运行了。但是需要分别运行在两台可以兼容低功耗蓝牙的设备上。一台当基站一台当接收机。
当你从足够远(10~20米)的地方想基站的方向走的时候,一个你&didEnterRange&那个didRangeBeacons方法就会被调用,这是就可以从方法中传入的beacon数组中取出值来现实在界面上。
但是有一点需要注意的是,我们处理的基站只有一个,所以每次都取出beacon数组的最后一个。如果有多个beacon基站的话就需要循环beacon数组的每一个元素,判断这个元素的proximity是Immdiate还是Near还是Far等。
每次测试的时候都进入或者离开一个区域太麻烦。可以在viewDidLoad方法中添加一行代码:
然后添加如下方法:
动调用了didStartMonitoringForRegion,在这个方法中调用了trackLocationManager的startRangingBeaconsInRegion方法。这样虽然不完美,但是足够测试了。
下面是代码列表:
ConfigViewController:
import&UIKit&&import&CoreLocation&&import&CoreBluetooth&&&&class&ConfigViewController:&UIViewController,&CBPeripheralManagerDelegate&{&&&&&&&&&&&&&&&&&&@IBOutlet&var&uuidLabel:&UILabel&&&&&&&@IBOutlet&var&majorLabel:&UILabel&&&&&&&@IBOutlet&var&minorLabel:&UILabel&&&&&&&@IBOutlet&var&identityLabel:&UILabel&&&&&&&@IBOutlet&var&transmitButton:&UIButton&&&&&&&&&&&&&&var&beaconRegion&:&CLBeaconRegion!&&&&&&&var&beaconPeripheralData&:&NSDictionary!&&&&&&&var&peripheralManager&:&CBPeripheralManager!&&&&&&&&&&&&&&override&func&viewDidLoad()&{&&&&&&&&&&&super.viewDidLoad()&&&&&&&&&&&&&&self.initBeacon()&&&&&&&&&&&self.setLabels()&&&&&&&}&&&&&&&&&&&&&&func&initBeacon(){&&&&&&&&&&&self.beaconRegion&=&CLBeaconRegion(proximityUUID:&NSUUID(UUIDString:&&206A2476-D4DB-42F0-BF73-C756&)&&&&&&&&&&&&&&&,&major:&1,&minor:&1,&identifier:&&com.mybeacon.region&)&&&&&&&}&&&&&&&&&&&&&&func&setLabels(){&&&&&&&&&&&self.uuidLabel.text&=&self.beaconRegion.proximityUUID.UUIDString&&&&&&&&&&&self.majorLabel.text&=&self.beaconRegion.major.stringValue&&&&&&&&&&&self.minorLabel.text&=&self.beaconRegion.minor.stringValue&&&&&&&&&&&self.identityLabel.text&=&self.beaconRegion.identifier&&&&&&&}&&&&&&&&&&override&func&didReceiveMemoryWarning()&{&&&&&&&&&&&super.didReceiveMemoryWarning()&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&@IBAction&func&transmitAction(sender:&UIButton)&{&&&&&&&&&&&self.beaconPeripheralData&=&self.beaconRegion.peripheralDataWithMeasuredPower(nil)&&&&&&&&&&&self.peripheralManager&=&CBPeripheralManager(delegate:&self,&queue:&nil,&options:&nil)&&&&&&&}&&&&&&&&&&&&&&&&func&peripheralManagerDidUpdateState(peripheral:&CBPeripheralManager!){&&&&&&&&&&&if&peripheral.state&==&CBPeripheralManagerState.PoweredOn&{&&&&&&&&&&&&&&&println(&Powered&on&)&&&&&&&&&&&&&&&self.peripheralManager.startAdvertising(self.beaconPeripheralData)&&&&&&&&&&&}&&&&&&&&&&&else&if&peripheral.state&==&CBPeripheralManagerState.PoweredOff&{&&&&&&&&&&&&&&&println(&Powered&off&)&&&&&&&&&&&&&&&self.peripheralManager.stopAdvertising()&&&&&&&&&&&}&&&&&&&}&&&}&&
TrackViewController:
import&UIKit&&import&CoreLocation&&&&class&TrackViewController:&UIViewController,&CLLocationManagerDelegate&{&&&&&&&&@IBOutlet&var&beaconLabel:&UILabel&&&&&&@IBOutlet&var&uuidLabel:&UILabel&&&&&&@IBOutlet&var&majorLabel:&UILabel&&&&&&@IBOutlet&var&minorLabel:&UILabel&&&&&&@IBOutlet&var&accuracyLabel:&UILabel&&&&&&@IBOutlet&var&distanceLabel:&UILabel&&&&&&@IBOutlet&var&rssiLabel:&UILabel&&&&&&&&&&&&var&beaconRegion&:&CLBeaconRegion!&&&&&&var&trackLocationManager&:&CLLocationManager!&&&&&&&&&&&&override&func&viewDidLoad()&{&&&&&&&&&&super.viewDidLoad()&&&&&&&&&&&&self.trackLocationManager&=&CLLocationManager();&&&&&&&&&&self.trackLocationManager.delegate&=&&&&&&&&&&&self.initRegion()&&&&&&&&&&self.locationManager(self.trackLocationManager,&didStartMonitoringForRegion:&self.beaconRegion)&&&&&&}&&&&&&&&&&&&func&initRegion(){&&&&&&&&&&var&uuid&=&NSUUID(UUIDString:&&206A2476-D4DB-42F0-BF73-C756&)&&&&&&&&&&self.beaconRegion&=&CLBeaconRegion(proximityUUID:&uuid,&identifier:&&com.mybeacon.region&)&&&&&&&&&&self.trackLocationManager.startMonitoringForRegion(self.beaconRegion)&&&&&&}&&&&&&&&&&&&func&locationManager(manager:&CLLocationManager!,&didStartMonitoringForRegion&region:&CLRegion!)&{&&&&&&&&&&self.trackLocationManager.startRangingBeaconsInRegion(self.beaconRegion)&&&&&&}&&&&&&&&override&func&didReceiveMemoryWarning()&{&&&&&&&&&&super.didReceiveMemoryWarning()&&&&&&&&&&&&&&&}&&&&&&&&&&&&func&locationManager(manager:&CLLocationManager!,&didEnterRegion&region:&CLRegion!)&{&&&&&&&&&&self.trackLocationManager.startRangingBeaconsInRegion(self.beaconRegion)&&&&&&}&&&&&&&&&&&&func&locationManager(manager:&CLLocationManager!,&didExitRegion&region:&CLRegion!)&{&&&&&&&&&&self.trackLocationManager.stopRangingBeaconsInRegion(self.beaconRegion)&&&&&&&&&&self.beaconLabel.text&=&&No&&&&&&&}&&&&&&&&&&&&func&locationManager(manager:&CLLocationManager!,&didRangeBeacons&beacons:&[AnyObject]!,&inRegion&region:&CLBeaconRegion!)&{&&&&&&&&&&println(&beacons&count&&+&String(beacons.count))&&&&&&&&&&if&beacons.count&&=&0&{&&&&&&&&&&&&&&return&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&var&beacon:&AnyObject&=&beacons[beacons.count&-&1]&&&&&&&&&&&&&&&&&&&&self.beaconLabel.text&=&&Yes&&&&&&&&&&&self.uuidLabel.text&=&beacon.proximityUUID&?&beacon.proximityUUID!.UUIDString&:&&&&&&&&&&&&&self.majorLabel.text&=&beacon.major&?&beacon.major!.stringValue&:&&&&&&&&&&&&&self.minorLabel.text&=&beacon.minor&?&beacon.minor!.stringValue&:&&&&&&&&&&&&&self.accuracyLabel.text&=&beacon.accuracy&?&String(beacon.accuracy)&:&&&&&&&&&&&&&if&beacon.proximity&{&&&&&&&&&&&&&&&&switch(beacon.proximity!){&&&&&&&&&&&&&&case&.Unknown:&&&&&&&&&&&&&&&&&&self.distanceLabel.text&=&&Unknown&proximity&&&&&&&&&&&&&&&case&CLProximity.Immediate:&&&&&&&&&&&&&&&&&&self.distanceLabel.text&=&&Immediate&&&&&&&&&&&&&&&case&CLProximity.Near:&&&&&&&&&&&&&&&&&&self.distanceLabel.text&=&&Near&&&&&&&&&&&&&&&case&CLProximity.Far:&&&&&&&&&&&&&&&&&&self.distanceLabel.text&=&&Far&&&&&&&&&&&&&&&default:&&&&&&&&&&&&&&}&&&&&&&&&&}&&&&&&&&&&self.rssiLabel.text&=&beacon.rssi&?&beacon.rssi!.description&:&&&&&&&&&}&&}&&
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
苹果在2014WWDC上发布的新编程语言Swift相信牵动着大部分iOS开发
既然强大的Android Studio来了,有什么理由不去用呢?
讲师: 24人学习过讲师: 68人学习过讲师: 133人学习过
ApiDemo,该应用程序演示了很多API。这个示例应用程序
在iOS深层开发中我们大都会遇到诸如多媒体,传感器相
移动办公模式是IT消费化的一个戏剧性结果。 这一模式
本书是一本知识全面、系统、专业的网络工程基础知识必备图书。全书条理清晰、逻辑性强,遵循从全局到细节,从底层基础到高层应用
Windows Phone专家
Android开发专家
51CTO旗下网站}

我要回帖

更多关于 蓝牙beacon基站 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信