源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android提高之BLE开发Android手机搜索iBeacon基站

  • 时间:2022-11-19 02:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android提高之BLE开发Android手机搜索iBeacon基站
前面文章讲述了Android手机与BLE终端之间的通信,而最常见的BLE终端应该是苹果公司倡导的iBeacon基站。iBeacon技术基于BLE,它的特点是通过广播对外发送消息,手机不需要连上iBeacon基站也能获取它的信息,目前主要用来做室内定位和营销信息推送,在BLE发出的广播里带上带上特定的信息从而被识别为iBeacon。在iOS里面使用iBeacon要经过passbook注册iBeacon的UUID和对应的文字简介,而在Android上则无类似passbook这种系统级的后台蓝牙搜索服务,这类服务需要开发者自己搞定。这次就讲讲Android手机搜索基站和显示iBeacon基站参数。 搜索iBeacon基站的不难,核心在于BluetoothAdapter.LeScanCallback()的onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord),而识别iBeacon的信息就在于scanRecord数组。按照https://github.com/RadiusNetworks/android-ibeacon-service/blob/master/src/main/java/com/radiusnetworks/ibeacon/IBeacon.java,识别是否iBeacon靠下面的红字: // AirLocate: // 02 01 1a 1a ff 4c 00 02 15  # Apple's fixed iBeacon advertising prefix // e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon profile uuid // 00 00 # major // 00 00 # minor // c5 # The 2's complement of the calibrated Tx Power 同时要注意iBeacon的UUID和BLE的Service、Characteristic、Descriptor的UUID是没关系,iBeacon的UUID是广播的时候发出,是由Apple自己定义的标准,而Service、Characteristic、Descriptor必须是连上BLE终端后才得到,是BLE标准。 本文代码运行结果如下,不断变化rssi可以用来做距离判断,不过这个模块的txPower不太准,所以测距就没意义: [img]http://files.jb51.net/file_images/article/201408/201489155739912.gif?201479155758[/img] 本文代码点此[url=http://xiazai.jb51.net/201408/yuanma/BluetoothLe_ibeacon(jb51.net).rar]本站下载[/url],代码就不贴出来了,核心代码点此[url=http://xiazai.jb51.net/201408/yuanma/android-ibeacon-service-master.zip]本站下载[/url]。 感兴趣的朋友可以下载本站代码测试一下运行效果,希望对大家学习Android程序设计有一定的帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部