Android BLE開發之Android手機搜尋iBeacon基站

來源:互聯網
上載者:User

標籤:android   藍芽   passbook   ble   ibeacon   

本文來自http://blog.csdn.net/hellogv/ ,引用必須註明出處!

上次講了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不太准,所以測距就沒意義:


本文代碼可以到這裡下載:http://download.csdn.net/detail/hellogv/7269127,代碼就不貼出來了,核心代碼改自https://github.com/RadiusNetworks/android-ibeacon-service。

Android BLE開發之Android手機搜尋iBeacon基站

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.