通信子系統目前涉及Wi-Fi和藍牙適配,廠商應當根據芯片自身情況進行適配。
移植指導
Wi-Fi編譯文件內容如下:
路徑:“foundation/communication/wifi_lite/BUILD.gn”
group("wifi") {deps = [ "$ohos_board_adapter_dir/hals/communication/wifi_lite/wifiservice:wifiservice" ]
}
從中可以看到廠商適配相關接口的.c文件存放目錄應為“$ohos_board_adapter_dir/hals/communication/wifi_lite/wifiservice”,且該目錄下BUILD.gn文件中的目標應為“wifiservice”。需要廠商適配的Wi-Fi接口見表1 、表2 和表3,藍牙接口見表4和表5。
表1 wifi_device.h
接口 | 作用 |
---|---|
EnableWifi | 啟用Wi-Fista模式。 |
DisableWifi | 禁用Wi-Fi?sta模式。 |
IsWifiActive | 檢查Wi-Fi?sta模式是否啟用。 |
Scan | 掃描熱點信息。 |
GetScanInfoList | 獲取所有掃描到的熱點列表。 |
AddDeviceConfig | 配置連接到的熱點信息。 |
GetDeviceConfigs | 獲取配置連接到的熱點信息。 |
RemoveDevice | 刪除指定的熱點配置信息。 |
ConnectTo | 接到指定的熱點。 |
Disconnect | 斷開Wi-Fi連接。 |
GetLinkedInfo | 獲取熱點連接信息。 |
RegisterWifiEvent | 為指定的Wi-Fi事件注冊回調。 |
UnRegisterWifiEvent | 取消注冊以前為指定Wi-Fi事件注冊的回調。 |
GetDeviceMacAddress | 獲取設備的MAC地址。 |
AdvanceScan | 根據指定參數啟動Wi-Fi掃描。 |
表2 wifi_hotspot_config.h
接口 | 作用 |
---|---|
SetBand | 設置該熱點的頻段。 |
GetBand | 獲取該熱點的頻段。 |
表3 wifi_hotspot.h
接口 | 作用 |
---|---|
EnableHotspot | 啟用Ap熱點模式。 |
DisableHotspot | 禁用Ap熱點模式。 |
SetHotspotConfig | 設置指定的熱點配置。 |
GetHotspotConfig | 獲取指定的熱點配置。 |
IsHotspotActive | 檢查Ap熱點模式是否啟用。 |
GetStationList | 獲取連接到此熱點的一系列STA。 |
GetSignalLevel | 獲取指定接收信號強度指示器(RSSI)和頻帶指示的信號電平。 |
DisassociateSta | 使用指定的MAC地址斷開與STA的連接。 |
AddTxPowerInfo | 將hotspot功率發送到beacon。 |
表4 ohos_bt_gatt.h
接口 | 作用 |
---|---|
InitBtStack | 初始化藍牙協議棧。 |
EnableBtStack | 使能藍牙協議棧。 |
DisableBtStack | 禁用藍牙協議棧。 |
SetDeviceName | 設置藍牙設備名稱。 |
BleSetAdvData | 設置廣播數據。 |
BleStartAdv | 開始廣播。 |
BleStartAdvEx | 傳入構建好的廣播數據,參數,開啟藍牙廣播。 |
BleStopAdv | 停止發送廣播。 |
BleUpdateAdv | 更新advertising參數。 |
BleSetSecurityIoCap | 設置藍牙的IO能力為NONE,配對方式為justworks。 |
BleSetSecurityAuthReq | 設置藍牙是否需要配對綁定。 |
BleGattSecurityRsp | 響應安全連接請求。 |
ReadBtMacAddr | 獲取設備MAC地址。 |
BleSetScanParameters | 設置掃描參數。 |
BleStartScan | 開始掃描。 |
BleStopScan | 停止掃描。 |
BleGattRegisterCallbacks | 注冊gap,GATT事件回調函數。 |
表5 ohos_bt_gatt_server.h
接口 | 作用 |
---|---|
BleGattsRegister | 使用指定的應用程序UUID注冊GATT服務器。 |
BleGattsUnRegister | 斷開GATT服務器與客戶端的連接。 |
BleGattsDisconnect | 斷開GATT服務器與客戶端的連接。 |
BleGattsAddService | 添加了一個服務。 |
BleGattsAddIncludedService | 將包含的服務添加到指定的服務。 |
BleGattsAddCharacteristic | 向指定的服務添加特征。 |
BleGattsAddDescriptor | 將描述符添加到指定的特征。 |
BleGattsStartService | 啟動一個服務。 |
BleGattsStopService | 停止服務。 |
BleGattsDeleteService | 刪除一個服務。 |
BleGattsClearServices | 清除所有服務。 |
BleGattsSendResponse | 向接收到讀取或寫入請求的客戶端發送響應。 |
BleGattsSendIndication | 設備側向APP發送藍牙數據。 |
BleGattsSetEncryption | 設置GATT連接的加密類型。 |
BleGattsRegisterCallbacks | 注冊GATT服務器回調。 |
BleGattsStartServiceEx | 根據傳入的服務列表,創建gatt服務。 |
BleGattsStopServiceEx | 傳入gatt服務句柄,停止gatt服務。 |
說明:
不同版本接口可能存在差異,需要根據當前版本的具體文件進行適配。
適配實例
-
在“config.json”中添加communication子系統。
路徑:“vendor/MyVendorCompany/MyProduct/config.json”修改如下:
{ "subsystem": "communication", "components": [ { "component": "wifi_lite", "features":[] }] },
-
添加適配文件。
在“vendor/MyVendorCompany/MyProduct/config.json”文件中,通常將配置“ohos_board_adapter_dir”配置為 “//vendor/MyVendorCompany/MyProduct/adapter”。
在“ohos_board_adapter_dir”目錄下根據上述適配指導中提到的頭文件,適配Wi-Fi、藍牙接口。
為了能讓大家更好的學習鴻蒙(HarmonyOS NEXT)開發技術,這邊特意整理了《鴻蒙開發學習手冊》(共計890頁),希望對大家有所幫助:https://qr21.cn/FV7h05
《鴻蒙開發學習手冊》:
如何快速入門:https://qr21.cn/FV7h05
- 基本概念
- 構建第一個ArkTS應用
- ……
開發基礎知識:https://qr21.cn/FV7h05
- 應用基礎知識
- 配置文件
- 應用數據管理
- 應用安全管理
- 應用隱私保護
- 三方應用調用管控機制
- 資源分類與訪問
- 學習ArkTS語言
- ……
基于ArkTS 開發:https://qr21.cn/FV7h05
- Ability開發
- UI開發
- 公共事件與通知
- 窗口管理
- 媒體
- 安全
- 網絡與鏈接
- 電話服務
- 數據管理
- 后臺任務(Background Task)管理
- 設備管理
- 設備使用信息統計
- DFX
- 國際化開發
- 折疊屏系列
- ……
鴻蒙開發面試真題(含參考答案):https://qr18.cn/F781PH
鴻蒙開發面試大盤集篇(共計319頁):https://qr18.cn/F781PH
1.項目開發必備面試題
2.性能優化方向
3.架構方向
4.鴻蒙開發系統底層方向
5.鴻蒙音視頻開發方向
6.鴻蒙車載開發方向
7.鴻蒙南向開發方向