您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 安卓开发 >> 正文

Android手机搜索iBeacon基站是如何实现的

作者:佚名    责任编辑:admin    更新时间:    2015-10-21 14:40:25

这是我们为大家提供的一篇介绍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不太准,所以测距就没意义:

Android手机搜索iBeacon基站

本文代码可以到这里下载:http://download.csdn.net/detail/hellogv/7269127,代码就不贴出来了,核心代码改自https://github.com/RadiusNetworks/android-ibeacon-service。

以上就是我们为大家提供的对Android手机搜索iBeacon基站是如何实现的相关介绍,希望对大家有所帮助!