Hi3516 openharmony标准系统L2 JS\eTS napi之wifi接口 原创 精华
yukoyu
发布于 2022-3-28 18:09
浏览
4收藏
Hi3516 openharmony标准系统L2 JS\eTS napi之wifi接口
1.接口的发现
我们查阅标准系统openharmony3.0的源码
路径:OpenHarmony/applications/standard/settings/entry/src/main/ets/default
可发现openharmony标准系统的设置系统应用里面的控制WiFi是调用napi接口实现的
import WifiNativeJs from '@ohos.wifi_native_js'
2.NAPI Wifi 接口使用
①.开启wifi接口
WifiNativeJs.enableWifi();
②.关闭wifi接口
WifiNativeJs.disableWifi();
③.连接wifi接口
let obj = {
"ssid": "xxx_wifi_name", //wifi名
"bssid": "xx:xx:xx:xx:xx:50", //wifibssid,注意这里要填写的2.4G wifi bssid,5G与2.4G的bssid是不一样的
"preSharedKey": "xxx_wifi_password", //wifi password
"isHiddenSsid": false,
"securityType": 3 //wifi类型 类型3的意思是 wpa/wpa2
}
WifiNativeJs.connectToDevice(obj)
④.更多wifi接口等你们探索
因为本次教程这是简单的使用openharmony3.0连接wifi,我们只用到这几个,@ohos.wifi_native_js 里面还有很多的接口,我就不一一列出来了,你们自己去探索。
3.利用eTS开发wifiAPP
①.开发工具
DevEco Studio 3.0.0.800
②.通过路由器查看 wifi的 bssid
打开路由器管理页面查看
③.通过手机APP查看 wifi的 bssid
我这里使用的是万能WiFi钥匙查看 bssid
④.实现代码
import WifiNativeJs from '@ohos.wifi_native_js';
async function On_Wifi() { //打开wifi接口
var buf= WifiNativeJs.enableWifi();
console.log("wifi test :on"+buf);
}
async function connect_Wifi() { //连接wifi
let obj = {
"ssid": "PDCN", //wifi名
"bssid": "20:76:93:4B:7B:2E", //wifi bssid
"preSharedKey": "1234567888", //wifi password
"isHiddenSsid": false,
"securityType": 3 //wifi 授权方式 类型3的意思是 wpa/wpa2
}
var buf = WifiNativeJs.connectToDevice(obj);
console.log("wifi test :on"+buf);
}
async function Off_Wifi() {
var buf= WifiNativeJs.disableWifi(); //关闭wifi
console.log("wifi test :on"+buf);
}
@Entry
@Component
struct Wifi {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('WIFI 连接测试')
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('打开wifi', { type: ButtonType.Capsule, stateEffect: true }).backgroundColor(0x317aff).width(250).height(100).margin(50)
.onClick((event: ClickEvent) => {
On_Wifi();
})
Button('连接wifi', { type: ButtonType.Capsule, stateEffect: true }).backgroundColor(0x317aff).width(250).height(100)
.onClick((event: ClickEvent) => {
connect_Wifi();
})
Button('关闭wifi', { type: ButtonType.Capsule, stateEffect: true }).backgroundColor(0x317aff).width(250).height(100).margin(50)
.onClick((event: ClickEvent) => {
Off_Wifi();
})
}
.width('100%')
.height('100%')
}
}
⑤.安装测试
效果图
测试成功!
4.注意事项
①.导入 @ohos.wifi_native_js 包报错不用管
②. 2.4G与5G的wifi bssid,不一样的
一般5Gwifi的bssid 的减去2等于2.4Gwifi的bssid
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-3-28 20:45:22修改
赞
11
收藏 4
回复
相关推荐
拿板子现跟楼主跑一遍
把楼主的代码复制跑,没有任何反应,是因为板子使用的3.1系统吗
要同款板子哦,3.0或3.1都可以
是hi3516DV300的板子,3.1的系统,但是开启连接返回的结果一直是flase
目前小型系统是不是不能在应用端操作WIFI?因为没有对应的jsi接口,如果要操作的话,只能自己实现对应的JSI接口吗?