將Android設(shè)備變了IBeacon基站灯荧,即使用Android設(shè)備發(fā)送IBeacon廣播信息。
<ul>要求
<li>硬件
支持BLE Peripheral模式的手機(jī)盐杂,新款A(yù)ndroid手機(jī)大部分支持(三星note5, 三星Galaxy Tab S2, Nexus6 ...)</li>
<li>軟件
Android 系統(tǒng)5.0及以上,在Lollipop中逗载,谷歌擴(kuò)展了BLE的功能,增加了對Preipheral的支持链烈。即增加了BluetoothLeAdvertiser__BLE消息廣播的核心API類及底層實(shí)現(xiàn)厉斟。</li>
</ul>
<ul>具體實(shí)現(xiàn)__
<li>權(quán)限申請
在AndroidManifest文件中申請操作藍(lán)牙設(shè)備的權(quán)限,對應(yīng)的權(quán)限如下
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
</li>
<li>功能檢查
檢查藍(lán)牙設(shè)備功能(藍(lán)牙設(shè)備是否打開强衡, 低功耗藍(lán)牙的支持情況)是否可用擦秽,具體實(shí)現(xiàn)可參考移動設(shè)備對IBeacon的支持情況
</li>
<li>配置廣播參數(shù)
通過AdvertiseSettings.Builder構(gòu)造AdvertiseSettings,并設(shè)置相應(yīng)信息(廣播的頻率,超時(shí)漩勤,功率等信息)感挥。
</li>
<li>生成廣播數(shù)據(jù)
建立廣播數(shù)據(jù),構(gòu)造AdvertiseData越败,它至多包含31字節(jié)的數(shù)據(jù)触幼。即需要包含IBeacon關(guān)鍵字段解析中介紹的IBeacon協(xié)議的一些關(guān)鍵信息。
其中包含了Beacon的設(shè)備標(biāo)識信息兩個(gè)字節(jié)究飞,UUID16字節(jié)置谦,Major2字節(jié),Minor2字節(jié)亿傅,發(fā)射功率1字節(jié)
</li>
<li>創(chuàng)建回調(diào)
創(chuàng)建回調(diào)AdvertiseCallback媒峡,它通過回調(diào)通知啟動廣播發(fā)送是否成功。我們則可以在回調(diào)中做相應(yīng)處理
</li>
<li>啟動廣播
準(zhǔn)備好“廣播設(shè)置”袱蜡,“廣播數(shù)據(jù)”和“廣播回調(diào)”后丝蹭,可以調(diào)用BluetoothLeAdvertiser類的startAdvertising方法,其參數(shù)就是我們上面準(zhǔn)備好的對象。
</li>
<li>關(guān)閉廣播
不需要廣播數(shù)據(jù)時(shí)奔穿,可以調(diào)用BluetoothLeAdvertiser類的stopAdvertising方法镜沽,其參數(shù)就是我們上面準(zhǔn)備好的callback對象。
</li>
</ul>
<p>如果我們就可以將一個(gè)Android設(shè)備“變成”IBeacon基站設(shè)備贱田,向外發(fā)射IBeacon信號
具體可參考DEMO