新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSBLE掃描和廣播
場景介紹

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、細河網(wǎng)站維護、網(wǎng)站推廣。
通過 BLE 掃描和廣播提供的開放能力,可以根據(jù)指定狀態(tài)獲取外圍設備、啟動或停止 BLE 掃描、廣播。
接口說明
| 接口名 | 功能描述 |
|---|---|
| startScan(List | 進行 BLE 藍牙掃描,并使用 filters 對結果進行過濾。 |
| stopScan() | 停止 BLE 藍牙掃描。 |
| getDevicesByStates(int[] states) | 根據(jù)狀態(tài)獲取連接的外圍設備。 |
| BleCentralManager(BleCentralManagerCallback callback) | 獲取中心設備管理對象。 |
| 接口名 | 功能描述 |
|---|---|
| onScanCallback(BleScanResult result) | 掃描到 BLE 設備的結果回調。 |
| onStartScanFailed(int resultCode) | 啟動掃描失敗的回調。 |
| 接口名 | 功能描述 |
|---|---|
| BleAdvertiser(Context context, BleAdvertiseCallback callback) | 用于獲取廣播操作對象。 |
| startAdvertising(BleAdvertiseSettings settings, BleAdvertiseData advData, BleAdvertiseData scanResponse) | 進行 BLE 廣播,第一個參數(shù)為廣播參數(shù),第二個為廣播數(shù)據(jù),第三個參數(shù)是掃描和廣播數(shù)據(jù)參數(shù)的響應。 |
| stopAdvertising() | 停止 BLE 廣播。 |
| startResultEvent(int result) | 廣播回調結果。 |
中心設備進行 BLE 掃描
- 進行 BLE 掃描之前先要繼承 BleCentralManagerCallback 類實現(xiàn) onScanCallback 和 onStartScanFailed 回調函數(shù),用于接收掃描結果。
- 調用BleCentralManager(BleCentralManagerCallback callback)接口獲取中設備管理對象。
- 獲取掃描過濾器,過濾器為空時為不使用過濾器掃描,然后調用 startScan()開始掃描 BLE 設備,在回調中獲取掃描到的 BLE 設備。
// 實現(xiàn)掃描回調
public class ScanCallback implements BleCentralManagerCallback{
Listresults = new ArrayList();
@Override
public void onScanCallback(BleScanResult var1) {
// 對掃描結果進行處理
results.add(var1);
}
@Override
public void onStartScanFailed(int var1) {
HiLog.info(TAG,"Start Scan failed,Code:" + var1);
}
}
// 獲取中心設備管理對象
private ScanCallback centralManagerCallback = new ScanCallback();
private BleCentralManager centralManager = new BleCentralManager(centralManagerCallback);
// 創(chuàng)建掃描過濾器然后開始掃描
List filters = new ArrayList();
centralManager.startScan(filters);
外圍設備進行 BLE 廣播
- 進行 BLE 廣播前需要先繼承 advertiseCallback 類實現(xiàn) startResultEvent 回調,用于獲取廣播結果。
- 調用接口 BleAdvertiser(Context context, BleAdvertiseCallback callback)獲取廣播對象,構造廣播參數(shù)和廣播數(shù)據(jù)。
- 調用 startAdvertising(BleAdvertiseSettings settings, BleAdvertiseData advData, BleAdvertiseData scanResponse) 接口開始 BLE 廣播。
// 實現(xiàn) BLE 廣播回調
private BleAdvertiseCallback advertiseCallback = new BleAdvertiseCallback() {
@Override
public void startResultEvent(int result) {
if(result == BleAdvertiseCallback.RESULT_SUCC){
// 開始 BLE 廣播成功
}
else {
// 開始 BLE 廣播失敗
}
}
};
// 獲取 BLE 廣播對象
private BleAdvertiser advertiser = new BleAdvertiser(this,advertiseCallback);
// 創(chuàng)建 BLE 廣播參數(shù)和數(shù)據(jù)
private BleAdvertiseData data = new BleAdvertiseData.Builder()
.addServiceUuid(SequenceUuid.uuidFromString(Server_UUID)) // 添加服務的 UUID
.addServiceData(SequenceUuid.uuidFromString(Server_UUID),new byte[]{0x11}) // 添加廣播數(shù)據(jù)內(nèi)容
.build();
private BleAdvertiseSettings advertiseSettings = new BleAdvertiseSettings.Builder()
.setConnectable(true) // 設置是否可連接廣播
.setInterval(BleAdvertiseSettings.INTERVAL_SLOT_DEFAULT) // 設置廣播間隔
.setTxPower(BleAdvertiseSettings.TX_POWER_DEFAULT) // 設置廣播功率
.build();
// 開始廣播
advertiser.startAdvertising(advertiseSettings,data,null); 當前題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSBLE掃描和廣播
當前地址:http://www.5511xx.com/article/cdjcghp.html


咨詢
建站咨詢
