萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> Android手機搜索iBeacon基站是如何實現的

Android手機搜索iBeacon基站是如何實現的

這是我們為大家提供的一篇介紹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基站是如何實現的相關介紹,希望對大家有所幫助!

copyright © 萬盛學電腦網 all rights reserved