国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android提高之BLE開發Android手機搜索iBeacon基站

2020-04-11 11:45:29
字體:
來源:轉載
供稿:網友

前面文章講述了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不太準,所以測距就沒意義:

本文代碼點此本站下載,代碼就不貼出來了,核心代碼點此本站下載

感興趣的朋友可以下載本站代碼測試一下運行效果,希望對大家學習Android程序設計有一定的幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长子县| 武穴市| 萝北县| 乐清市| 浙江省| 荣成市| 万山特区| 黔西县| 綦江县| 咸丰县| 郸城县| 沙坪坝区| 金乡县| 将乐县| 图木舒克市| 宝清县| 抚远县| 金阳县| 江安县| 花莲市| 西宁市| 鹤庆县| 平果县| 苍山县| 霍城县| 仁怀市| 瑞昌市| 沐川县| 大邑县| 济宁市| 高陵县| 葫芦岛市| 古蔺县| 临洮县| 马山县| 鹤山市| 宜川县| 栾川县| 建水县| 奉新县| 项城市|