云子 ibeaconn uuid可以相同吗

如何使用微信“摇一摇 周边”功能?如何让你的微信显示出“摇一摇 周边”功能?
正文的最前面先公布一下微信iBeaconID(微信官方iBeacon的UUID):
FDA5-4FB1-AFCF-C6EB,Major:10001,Minor:12345
微信到时候可能会有好几个iBeaconID(即UUID),但肯定不是每个商户都有一个单独的UUID的,每个商户只是在这几个固定的UUID下面分配Major和Minor码,我估计微信总共不会超过10个UUID,因为iOS系统必须指定UUID扫描,同时扫描多个UUID对系统的开销非常大,在这一点上安卓就完全不一样,安卓系统是所以扫描所有收到信号的UUID的。
熟悉iBeacon的就不用往下看了。。。
腾讯的超级APP-微信从6.0版就已经内置了“摇一摇 周边”功能,但是我们周边没有微信兼容的iBeacon信号,所以在广大微信用户的“摇一摇”界面上一直没有显示出这个“摇一摇 周边”功能,随着苹果对iBeacon的生态链的开始建设和推广,微信也与国内各iBeacon设备开发商开始内测iBeacon这个功能,如果你想抢先体验一下微信的这个最新的功能,请按下面操作:
1,如果你已经有了iBeacon蓝牙基站:
则把微信官方的iBeaconID的三个参数写入到你的iBeacon设备里面,具体操作请查看你的蓝牙基站的销售商,一般来讲每个iBeacon厂商都有自己的设备工具的,非常简单。
2,如果你没有iBeacon蓝牙基站,但你有iPhone手机(必须是iPhone4S或者更新版的,iPhone
5 ,5S, iPhone6,6Plus)
打开App Store里面搜索“iBeacon Scanner”,安装好了后,屏幕右划,显示出菜单,点击”Turn this device into iBeacon”这个菜单项,然后将微信官方iBeacon的UUID:FDA5-4FB1-AFCF-C6EB,Major:10001,Minor:12345这三个参数填入到合适的地方,并且点击右上角的“Turn”按钮,如下图所示:
3,这个时候,必须打开你的手机蓝牙功能,然后打开微信的“摇一摇”界面,稍等几秒钟就会出现“周边”这个功能项了,摇吧。。。。
重点的重点:你手机的蓝牙必须是4.0版本的,并且安卓系统必须是4.3以上的,,否则把手机摇散架了也看不到“周边”这个功能的。。
关于微信iBeacon的相关技术:
1,微信“摇一摇 周边”原理:当你打开微信“摇一摇”这个功能的时候,微信开始搜索UUID为“FDA5-4FB1-AFCF-C6EB”的基站发出的蓝牙信号,如果搜索到该信号,即会立马在最下面显示出“周边”这个功能项,当手机摇动的时候,微信会把Major和Minor这两个参数发送到微信后面服务器查找相应的商户信息页面并且显示在微信界面上,这个Major和Minor是商户在微信后台申请到的,现在为了体验你可以把Major和Minor这两个参数随便填写,最大值不要超过65536就可以了。
2,只有苹果的iPhone4S或者更新款的手机才可以模拟成iBeacon基站,并且系统必须是iOS7.1以上的,当然iPad mini或者更新款的iPad也是可以的。
3,安卓手机无法虚拟成iBeacon基站,但可以接收iBeacon基站发出的信号,并且条件是你的安卓手机必须配配置的是蓝牙4.0的芯片,并且你的安卓系统是4.3以上的才可以(小米的V5版系统是Android 4.1之类的版本,必须是MIUI 6的系统才可以)
4,iBeacon标准是没有加密的,即任何人都可以“接收”、“制造”和“复制”出一个iBeacon蓝牙基站出来。
说得比较零乱啊,因为iBeacon这个东西要求实在太苛刻了,前景如何???你觉得呢?
This entry was posted in , . Bookmark the .
Recent Postsibeacon模块说明书_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
ibeacon模块说明书
基​于​T​I​最​新​蓝​牙​芯​片​C​C60​,​支​持​I​b​e​a​c​o​n​协​议​,​超​低​功​耗​。
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢现在的位置:
苹果又一项颠覆性创新iBeacon?——estimote拆解评测
乔布斯之后苹果再也没有推出令人惊艳的产品,按部就班显得非常“低调”。在去年开发者大会上苹果悄悄的推出了IOS7下一项新技术,尽管没有大张旗鼓的宣传,iBeacon还是吸引了很多业内人士的眼光,因为这也许是苹果又一个对未来生活影响深远的技术。
苹果在美国的零售店已经启动了服务,当你手持升级了IOS7的IOS设备走进商店时,会推送一些提醒消息给你,在获得允许的情况下建立连接。想象一下在不同的柜台前,手机应用根据你所在位置,推送给你最新查看的商品优惠及信息,同一个界面上,能完成优惠券兑换、支付等一系列的操作。这一切非凡体验都能通过iBeacon实现。
那什么是iBeacon?iBeacon是苹果公司针对“室内定位系统”推出的专有商标,“一种新型的低功耗、低成本信号发射器能够发送信号通知IOS7设备它的存在”。简单地说就是用于室内定位,Beacon翻译过来就是灯塔。iBeacon的工作原理是基于(BLE)传输技术,可以说它是苹果对于BLE的一个别称。iBeacon基站不断向四周发送蓝牙信号,当智能设备进入设定区域时,就能够收到信号。苹果并没有把iBeacon打造成封闭技术系统,只要满足iBeacon技术标准的都可以使用,所以Android也能够支持iBeacon。不过Google很晚才在Android4.3中支持BLE技术,而且目前只有部分旗舰机型配置BLE。
定位一直是非常关键的功能,尤其是在移动互联网时代。不同于在室外定位上GPS导航占统治地位,在室内定位领域还没有非常成熟的应用。通过iBeacon基站的部署能够实现室内导航,同时通过蓝牙推送信息,iBeacon在商场零售或者一些公共服务领域如体育馆、博物馆能提供非常棒的体验。尤其是蓝牙不错传输距离、低功耗、以及信号加密使得iBeacon在移动支付领域也非常有前景。总之,iBeacon的潜力似乎是无穷大,也受到了越来越多的关注。
要了解iBeacon是如何工作首先我们要了解BLE。BLE(也称为Bluetooth Smart)最早追溯到Nokia于2006年提出的Wibree,后来融合进了蓝牙标准,成为Bluetooth4.0的一部分。目前我们经常能看到3种蓝牙设备:
Bluetooth:只支持传统模式的蓝牙设备
Bluetooth Smart Ready:支持传统和低功耗两种模式设备
Bluetooth Smart:只支持设备
BLE与传统的蓝牙相比最大的优势是功耗降低90%,同时传输距离增大(超过100米)、安全和稳定性提高(支持AES加密和CRC验证)。iBeacon同时有一些自己的特点:
无需配对,一般蓝牙设备印象中都需要配对工作。iBeacon无需配对,因为它是采用蓝牙的广播频道传送信号。
程序可以后台唤醒,iBeacon的信息推送需要App支持。但是我们接收iBeacon信号无需打开App,只要保证安装了,同时手机蓝牙打开。
iBeacon是如何工作呢?实际上iBeacon基站通过蓝牙的广播频道不断向外发送位置信息,发送频率越快越耗电。也就是说iBeacon并不推送消息,而只是用于定位,推送消息的功能必须由App来完成。苹果定义了iBeacon 其中32位广播的数据格式。
iBeacon数据包格式
UUID:厂商识别号
Major:相当于群组号,同一个组里Beacon有相同的Major
Minor:相当于识别群组里单个的Beacon
TX Power:用于测量设备离Beacon的距离
UUID+Major+Minor就构成了一个Beacon的识别号,有点类似于网络中的IP地址。TX Power用于测距,iBeacon目前只定义了大概的3个粗略级别:
非常近(Immediate): 大概10厘米内
近(Near):1米内
远(Far):1米外
苹果已经发布了iBeacon的相关技术规范,同时邀请硬件厂商进行商标认证。但是iBeacon并不是专利技术,支持LBE的Android系统也可以支持iBeacon。目前国内外有很多厂商推出了基于iBeacon的产品,其中Estimote是最有代表性的。
推荐开发板
文章分页: 1
【上篇】【下篇】
您可能还会对这些文章感兴趣!
您必须才能发表留言!IOS7 CC2541 iBeacon UUID Programmable Bluetooth Beacon-bokee.net
New Products
MoreHome &
IOS7 CC2541 iBeacon UUID Programmable Bluetooth Beacon
Minimum Order Quantity:
100 Piece/Pieces
Supply Ability:
10000 Piece/Pieces per Week
Payment Terms:
T/T,Western Union,MoneyGram
Quick Details
Place of Origin: Guangdong, China (Mainland)
Brand Name: iBtag
Model Number: AKMW-iB001
Type: beacon
Application: Mobile Phone
Battery: CRmAh
Function: Broadcasting advertisement or info.
Standby time: 10 months
Distance: 40m-50m
Product Size: 27*6mm
Usage: Personal
Packaging & Delivery
Packaging Details:
Environmental GIFT BOX Unit packing Size:16 x 12.5 x 5.5cm Carton Size:52*49*44cm Unit packing weight:105.4g Net/gross weight:25kg
Delivery Detail:
within 7days
Specifications
1. CC2541 module built-in iBeacon firmware
2. iBeacon profile
3. Antenna on board
4. With APP and housing
IOS7 CC2541 iBeacon UUID programmable
1. BE001 is developed and produced by Shenzhen Ankhmaway, it is&based on mini BLE 4.0 module CC2541.
2. The iBeacon module Betag is built-in a battery holder with a coin battery and housing, it can work as a lone system.
3. SDK is available to help customers' build their own APP or use our APP.
4. The&UUID, major and&minor values can be customized by customers own.
5. The housing development service at low cost will be provided to potential customers.
- Built-in iBeacon firmware
- Built-in a coin battery
- Bluetooth low energy technology compatible
- Excellent link budget (up to 97dB)
- Enable long range applications
- Accurate digital RSSI
- Compatible with CE and FCC regulation
- High performance and low power 8051 core MCU
- Temperature sensor
- AES security coprocessor
iBeacon parameter default setting -&UUID:EBEFD837E7B
-&Major&and&minor&identifier:&1,&1
-&Pairing&password:&0x666666
How to modify iBeacon parameter
The parameter of iBeacon can be changed by a special APP by customer own. We will provide this special APP to customers after they got the iBeacon module.
Step 1- Compile the special APP to your iPhone
Step 2- Connect to the iBeacon module, and then modify the parameters by APP Step 3- Reset the iBeacon module
Characteristic:
&o& FFF0-&FFF2 - read/write UUID
&o& FFF0-&FFF3 - read/write major identifier
&o& FFF0-&FFF4 - read/write minor identifier
&o& FFF0-&FFF5 - read/write power
&o& 180F-&2A19 – Read/Notify battery life
How to update the firmware through Air (Bluetooth)
The firmware provides OAD (over-the-air) function to update the firmware.
Electronic Parameters
Battery model
CR2016(CR2032)
Coin battery, 3.0Vdc, 1pc
Operation Voltage
Operation Frequency
Programmable
Frequency Error
Modulation
Standby current
Output Power
Programmable
Receiving Sensitivity
High gain mode
Transmission distance
max. 50 meters
BER&0.1%, Open space
23.1 x 23.1 x 4mm (23.1 x 23.1 x 5.6mm)
Operation state and power consumption
Operation Current (mA)
State 1: wake-up
State 2: pre-processing
State 3: pre-receiving
State 4: receiving
State 5: Rx changed to TX
State 6: transmitting
State 7: pre-processing
views:84 |您所在的位置: &
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旗下网站

我要回帖

更多关于 ibeacon 的文章

 

随机推荐