Nordic iBeacon设备在ios8上无法正常工作的问题

这些天在研究iBeacon,搞了几个讯联的板子,芯片用的Nordic nRF51822,发现Android上可以正常扫描到的设备,在ios8上却无法正常工作。一开始怀疑是ios8的程序问题,找了两个手机装了AirLocate,一个模拟iBeacon发射器,一个用来检测,发现一切正常。所以不得不怀疑ios系统有什么猫腻。google了一番,确认了我的猜测是正确的:

https://devzone.nordicsemi.com/question/16974/nrf51822-and-ios8/

http://stackoverflow.com/questions/25567716/ibeacon-on-ios8-not-working-properly

问题的根源就是这个company identifier(和UUID无关,ios没有限制UUID的使用),使用android的nRF Master Control Panel查看到Company字段是0x0059,而苹果手机模拟的ibeacon是0x004C。于是问题就来了:咋改啊???????

看了一下Nordic提供的ibeacon源码,发现这个字段是写代码死的,所以答案只有一个:改源码、编译、烧写

解决方案不难,就是有点烦,为了日后万一要用,这里简单记录一下编译和烧写的步骤:

固件编译
1.安装keil 5.2.1   (https://www.keil.com/demo/eval/arm.htm
2.安装keil compatible device pack 5.2.1   (http://www2.keil.com/mdk5/legacy/
3.用keil打开代码工程



4.注意修改main.c中的COMPANY_IDENTIFIER,默认为0x0059,苹果为0x004C




5.执行Build,在arm/_build/下生成最终的hex文件




固件烧录
1.安装nrfgo studio 1.15.1  (http://pan.baidu.com/share/link?uk=2738462295&shareid=2627193480&fid=244915420888634)
2.插入烧录器,使用连接线连接beacon设备,注意取下beacon设备的电池:

注意插线方向,观察到beacon设备的led正常亮就算连接ok了。

3.按紧beacon设备上的连接线,打开nRFgo Studio,刷新设备直到连接成功:




4.连接成功后,选择hex镜像文件进行烧写



终于搞定了~ 看来苹果这是下定主意自己玩ibeacon的节奏啊。据小道消息说分众已经在偷偷地部署beacon设备了,弱弱地问,这些设备的company identifier改了没,要是没改的话就都白折腾了。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值