Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
1eedca85
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1eedca85
编写于
7月 12, 2023
作者:
Z
zhangchao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
检视修改
Signed-off-by:
N
zhangchao
<
zhangchao@kaihong.com
>
上级
418ba6e2
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
418 addition
and
407 deletion
+418
-407
zh-cn/third-party-cases/wlan-search-connect-disconnect.md
zh-cn/third-party-cases/wlan-search-connect-disconnect.md
+418
-407
未找到文件。
zh-cn/third-party-cases/wlan-search-connect-disconnect.md
浏览文件 @
1eedca85
...
@@ -8,31 +8,33 @@
...
@@ -8,31 +8,33 @@
本例效果如下:
本例效果如下:
|
连接WIFI | WIFI列表
|
|
扫描WLAN | 连接WLAN | 断开WLAN
|
| :---------------------------------
: | :
----------------------------------: |
| :---------------------------------
-------------------------: | :----------------------------------------------------------: | :------------------------
----------------------------------: |
|
!
[
contactlist
](
figures/connect.png
)
| !
[
contactlist
](
figures/wlanmain.png
)
|
|
<img
src=
"figures/wlanscan.jpg"
alt=
"contactlist"
style=
"zoom: 50%;"
/>
|
<img
src=
"figures/wlanconnect.jpg"
alt=
"contactlist"
style=
"zoom: 50%;"
/>
|
<img
src=
"figures/wlandisconnect.jpg"
alt=
"contactlist"
style=
"zoom: 50%;"
/>
|
## 运行环境
## 运行环境
本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发。
-
IDE:DevEco Studio 4.0.0.201 Beta1
-
IDE:DevEco Studio 4.0.0.201 Beta1
-
SDK:Ohos_sdk_public 4.0.7.5 (API Version 10 Beta1)
-
SDK:Ohos_sdk_public 4.0.7.5 (API Version 10 Beta1)
## 实现思路
## 实现思路
本例主要通过@ohos.wifiManager 相关API实现
wlan激活和关闭、扫描和连接WIFI
等功能。
本例主要通过@ohos.wifiManager 相关API实现
WLAN激活和关闭、扫描和连接WLAN
等功能。
-
WLAN功能的激活和关闭:点击首页的切换按钮,如果是打开,使用wifi.enableWifi()开启
wifi;如果是关闭,则使用wifi.disconnect()断开wifi, 然后使用wifi.disableWifi()关闭wifi
-
WLAN功能的激活和关闭:点击首页的切换按钮,如果是打开,使用wifi.enableWifi()开启
WLAN功能;如果是关闭,则使用wifi.disconnect()断开WLAN功能, 然后使用wifi.disableWifi()关闭WLAN。
-
W
IFI的连接:点击wifi列表中加密的wifi,并在弹窗中输入密码后,会在AvailableWifi.ets中通过WifiModule.connectNetwork()调用wifi.connectToDevice()连接wifi
-
W
LAN的连接:点击WLAN列表中加密的WLAN,并在弹窗中输入密码后,会在AvailableWifi.ets中通过WifiModule.connectNetwork()调用wifi.connectToDevice()连接WLAN。
-
W
IFI的扫描:进入Index.ets 后就会间歇性的调用wifi.scan()开启扫描,然后通过WifiModel模块中的getScanInfos()调用wifi.getScanResults()来获取扫描的结果
-
W
LAN的扫描:进入Index.ets 后就会间歇性的调用wifi.scan()开启扫描,然后通过WifiModel模块中的getScanInfos()调用wifi.getScanResults()来获取扫描的结果.
## 开发步骤
## 开发步骤
1.
申请所需权限
1.
申请所需权限
在model.json5中添加以下配置:
在model.json5中添加以下配置:
```
json
```
json
"requestPermissions"
:
[
"requestPermissions"
:
[
{
{
"name"
:
"ohos.permission.GET_WIFI_INFO"
//允许应用获取WLAN信息
"name"
:
"ohos.permission.GET_WIFI_INFO"
//允许应用获取WLAN信息
},
},
...
@@ -66,33 +68,37 @@
...
@@ -66,33 +68,37 @@
{
{
"name"
:
"ohos.permission.APPROXIMATELY_LOCATION"
//允许应用获取设备模糊位置信息
"name"
:
"ohos.permission.APPROXIMATELY_LOCATION"
//允许应用获取设备模糊位置信息
}
}
]
]
```
```
2.
准备工作
2.
准备工作
定义boolean变量isSwitchOn作为WLAN开关是否打开的标志。
```
typescript
```
typescript
import
wifi
from
'
@ohos.wifiManager
'
import
wifi
from
'
@ohos.wifiManager
'
aboutToAppear
()
{
aboutToAppear
()
{
// 如果wifi是开的,就记录下状态,然后扫描wifi
,并获取连接信息
// 如果WLAN是开的,就记录下状态,然后扫描WLAN
,并获取连接信息
if
(
wifi
.
isWifiActive
())
{
//查询wifi
是否已使能
if
(
wifi
.
isWifiActive
())
{
//查询WLAN
是否已使能
Logger
.
log
(
TAG
,
'
wifi is active
'
)
Logger
.
log
(
TAG
,
'
wifi is active
'
)
this
.
isSwitchOn
=
true
//已使能说明wifi
开关已被打开,那么让isSwitchOn为true
this
.
isSwitchOn
=
true
//已使能说明WLAN
开关已被打开,那么让isSwitchOn为true
wifi
.
scan
()
//@ohos.wifiManager的接口,对wifi
进行扫描
wifi
.
scan
()
//@ohos.wifiManager的接口,对WLAN
进行扫描
this
.
scan
()
//自定义的scan函数,确保扫描的持续性
this
.
scan
()
//自定义的scan函数,确保扫描的持续性
this
.
getLinkedInfo
()
this
.
getLinkedInfo
()
}
}
// 启动监听
// 启动监听
this
.
addListener
()
//监听连接状态的变化
this
.
addListener
()
//监听连接状态的变化
}
}
```
```
3.
持续地扫描可用WLAN
3.
持续地扫描可用wifi
scan方法不断地自我调用以实现对WLAN的不停扫描。
```
typescript
```
typescript
async
getLinkedInfo
()
{
async
getLinkedInfo
()
{
try
{
try
{
//调用getLinkedInfo接口得到是否已连接wifi
的信息
//调用getLinkedInfo接口得到是否已连接WLAN
的信息
let
wifiLinkedInfo
=
await
wifi
.
getLinkedInfo
()
let
wifiLinkedInfo
=
await
wifi
.
getLinkedInfo
()
if
(
wifiLinkedInfo
===
null
||
wifiLinkedInfo
.
bssid
===
''
)
{
if
(
wifiLinkedInfo
===
null
||
wifiLinkedInfo
.
bssid
===
''
)
{
//如果结果为空,则说明未连接
//如果结果为空,则说明未连接
...
@@ -106,27 +112,27 @@ async getLinkedInfo() {
...
@@ -106,27 +112,27 @@ async getLinkedInfo() {
Logger
.
info
(
`getLinkedInfo failed err is
${
JSON
.
stringify
(
err
)}
`
)
Logger
.
info
(
`getLinkedInfo failed err is
${
JSON
.
stringify
(
err
)}
`
)
}
}
}
}
async
scan
()
{
async
scan
()
{
// 获取有关Wi-Fi
连接的信息,存入linkedInfo
// 获取有关WLAN
连接的信息,存入linkedInfo
await
this
.
getLinkedInfo
()
await
this
.
getLinkedInfo
()
// 不停地扫描wifi
// 不停地扫描WLAN
let
result
:
Array
<
WifiType
>
=
await
this
.
wifiModel
.
getScanInfos
()
//调用model/WifiModel.ets中的getScanInfos得到扫描结果
let
result
:
Array
<
WifiType
>
=
await
this
.
wifiModel
.
getScanInfos
()
//调用model/WifiModel.ets中的getScanInfos得到扫描结果
if
(
this
.
isSwitchOn
)
{
if
(
this
.
isSwitchOn
)
{
//如果wifi
功能已打开,则要进行不停地扫描
//如果WLAN
功能已打开,则要进行不停地扫描
AppStorage
.
SetOrCreate
(
'
wifiList
'
,
result
)
//将扫描结果存至全局
AppStorage
.
SetOrCreate
(
'
wifiList
'
,
result
)
//将扫描结果存至全局
//每3000毫秒调用一次scan(),实现不停扫描可用wifi
//每3000毫秒调用一次scan(),实现不停扫描可用WLAN
setTimeout
(
async
()
=>
{
setTimeout
(
async
()
=>
{
await
this
.
scan
()
await
this
.
scan
()
},
3000
)
},
3000
)
}
}
}
}
addListener
()
{
addListener
()
{
// wifi
连接状态改变事件发生时,修改连接信息
// WLAN
连接状态改变事件发生时,修改连接信息
wifi
.
on
(
'
wifiConnectionChange
'
,
async
state
=>
{
wifi
.
on
(
'
wifiConnectionChange
'
,
async
state
=>
{
Logger
.
log
(
TAG
,
`wifiConnectionChange:
${
state
}
`
)
Logger
.
log
(
TAG
,
`wifiConnectionChange:
${
state
}
`
)
await
this
.
getLinkedInfo
()
//wifi连接状态改变,重新获取wifi
连接信息
await
this
.
getLinkedInfo
()
//WLAN连接状态改变,重新获取WLAN
连接信息
})
})
// wifi状态改变时,先清空wifi
列表,然后判断是否是开启状态,如果是就扫描
// WLAN状态改变时,先清空WLAN
列表,然后判断是否是开启状态,如果是就扫描
wifi
.
on
(
'
wifiStateChange
'
,
state
=>
{
wifi
.
on
(
'
wifiStateChange
'
,
state
=>
{
Logger
.
log
(
TAG
,
`wifiStateLisener state:
${
state
}
`
)
Logger
.
log
(
TAG
,
`wifiStateLisener state:
${
state
}
`
)
AppStorage
.
SetOrCreate
(
'
wifiList
'
,
[])
AppStorage
.
SetOrCreate
(
'
wifiList
'
,
[])
...
@@ -135,9 +141,9 @@ addListener() {
...
@@ -135,9 +141,9 @@ addListener() {
}
}
})
})
}
}
.................................
...
...
//model/WifiModel.ets
//model/WifiModel.ets
async
getScanInfos
():
Promise
<
Array
<
WifiType
>>
{
async
getScanInfos
():
Promise
<
Array
<
WifiType
>>
{
Logger
.
log
(
TAG
,
'
scanWifi begin
'
)
Logger
.
log
(
TAG
,
'
scanWifi begin
'
)
let
wifiList
:
Array
<
WifiType
>
=
[]
let
wifiList
:
Array
<
WifiType
>
=
[]
let
result
:
Array
<
wifi
.
WifiScanInfo
>
=
[]
let
result
:
Array
<
wifi
.
WifiScanInfo
>
=
[]
...
@@ -161,12 +167,14 @@ async getScanInfos(): Promise<Array<WifiType>> {
...
@@ -161,12 +167,14 @@ async getScanInfos(): Promise<Array<WifiType>> {
}
}
return
wifiList
return
wifiList
}
}
```
```
4.
构建UI框架、通过关闭按钮实现断开wifi
连接。
4.
构建UI框架、通过关闭按钮实现断开WLAN
连接。
```
typescript
TitleBar组件呈现了标题框。WLAN开关按钮由一个Toggle组件呈现,其绑定的onChange事件在按钮被打开时开始扫描可用WLAN,在被关闭时断开当前连接WLAN并且关闭WLAN功能。当前已连接的WLAN由两个Text组件分别显示其ssid与连接状态。
build
()
{
```
typescript
build
()
{
Column
()
{
Column
()
{
TitleBar
()
//引入自component/TitleBar.ets,负责标题框的具体呈现
TitleBar
()
//引入自component/TitleBar.ets,负责标题框的具体呈现
Row
()
{
Row
()
{
...
@@ -181,17 +189,17 @@ build() {
...
@@ -181,17 +189,17 @@ build() {
Logger
.
log
(
`LSQ: wifi swtich is:
${
isOn
}
`
)
Logger
.
log
(
`LSQ: wifi swtich is:
${
isOn
}
`
)
AppStorage
.
SetOrCreate
(
'
wifiList
'
,
[])
AppStorage
.
SetOrCreate
(
'
wifiList
'
,
[])
try
{
try
{
// 如果按钮被打开了,记录状态,打开网络,开始扫描可用wifi
// 如果按钮被打开了,记录状态,打开网络,开始扫描可用WLAN
if
(
isOn
)
{
if
(
isOn
)
{
this
.
isSwitchOn
=
true
this
.
isSwitchOn
=
true
wifi
.
enableWifi
()
//使wifi
功能可用
wifi
.
enableWifi
()
//使WLAN
功能可用
return
return
}
else
{
}
else
{
// 如果按钮被关闭了记录状态,断开网络禁用网络
// 如果按钮被关闭了记录状态,断开网络禁用网络
this
.
isSwitchOn
=
false
this
.
isSwitchOn
=
false
this
.
isLinked
=
false
this
.
isLinked
=
false
wifi
.
disconnect
()
//断开当前wifi
连接
wifi
.
disconnect
()
//断开当前WLAN
连接
wifi
.
disableWifi
()
//使wifi
功能不可用
wifi
.
disableWifi
()
//使WLAN
功能不可用
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
Logger
.
error
(
TAG
,
`failed,code:
${
JSON
.
stringify
(
error
.
code
)}
,message:
${
JSON
.
stringify
(
error
.
message
)}
`
)
Logger
.
error
(
TAG
,
`failed,code:
${
JSON
.
stringify
(
error
.
code
)}
,message:
${
JSON
.
stringify
(
error
.
message
)}
`
)
...
@@ -202,13 +210,13 @@ build() {
...
@@ -202,13 +210,13 @@ build() {
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
.
padding
({
left
:
16
,
right
:
16
})
.
padding
({
left
:
16
,
right
:
16
})
if
(
this
.
isLinked
&&
this
.
isSwitchOn
)
{
if
(
this
.
isLinked
&&
this
.
isSwitchOn
)
{
//如果当前按钮处于打开状态,且wifi
是已连接状态
//如果当前按钮处于打开状态,且WLAN
是已连接状态
Column
()
{
Column
()
{
Text
(
$r
(
'
app.string.connected
'
))
Text
(
$r
(
'
app.string.connected
'
))
.
fontSize
(
22
)
.
fontSize
(
22
)
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
Row
()
{
Row
()
{
Text
(
this
.
linkedInfo
.
ssid
)
//展示当前已连接的wifi
Text
(
this
.
linkedInfo
.
ssid
)
//展示当前已连接的WLAN
.
fontSize
(
20
)
.
fontSize
(
20
)
.
fontColor
(
Color
.
Black
)
.
fontColor
(
Color
.
Black
)
.
layoutWeight
(
1
)
.
layoutWeight
(
1
)
...
@@ -226,7 +234,7 @@ build() {
...
@@ -226,7 +234,7 @@ build() {
.
padding
({
left
:
16
,
right
:
16
})
.
padding
({
left
:
16
,
right
:
16
})
}
}
if
(
this
.
isSwitchOn
)
{
if
(
this
.
isSwitchOn
)
{
//如果按钮处于打开状态,展示所有可用wifi
//如果按钮处于打开状态,展示所有可用WLAN
AvailableWifi
({
linkedInfo
:
this
.
linkedInfo
})
//AvailableWifi引入自component/AvailableWifi.ets
AvailableWifi
({
linkedInfo
:
this
.
linkedInfo
})
//AvailableWifi引入自component/AvailableWifi.ets
}
}
}
}
...
@@ -234,13 +242,15 @@ build() {
...
@@ -234,13 +242,15 @@ build() {
.
height
(
'
100%
'
)
.
height
(
'
100%
'
)
.
backgroundColor
(
$r
(
'
app.color.index_bg
'
))
.
backgroundColor
(
$r
(
'
app.color.index_bg
'
))
}
}
```
```
5.
展示可用wifi列表及wifi
的连接。
5.
展示可用WLAN列表及WLAN
的连接。
```
typescript
使用List组件呈现可用WLAN列表,ListItem由一个呈现WLANssid的Text组件,一个表示其是否被加密的Text组件和一个展示其加密与否图像的Image组件组成。
//component/AvailableWifi.ets
build
()
{
```
typescript
//component/AvailableWifi.ets
build
()
{
List
()
{
List
()
{
ListItem
()
{
ListItem
()
{
Row
()
{
Row
()
{
...
@@ -251,26 +261,26 @@ build() {
...
@@ -251,26 +261,26 @@ build() {
.
id
(
'
validWlan
'
)
.
id
(
'
validWlan
'
)
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
}
}
//通过数据懒加载的方式从数据源中每次迭代一个可用wifi
进行展示,可用列表被放置在滚动容器中,被划出可视区域外的资源会被回收
//通过数据懒加载的方式从数据源中每次迭代一个可用WLAN
进行展示,可用列表被放置在滚动容器中,被划出可视区域外的资源会被回收
LazyForEach
(
this
.
wifiDataResource
,
(
item
,
index
)
=>
{
LazyForEach
(
this
.
wifiDataResource
,
(
item
,
index
)
=>
{
ListItem
()
{
ListItem
()
{
WifiView
({
wifi
:
item
})
//WifiView引入自Component/WifiView.ets,负责可用Wifi
信息展示的具体实现
WifiView
({
wifi
:
item
})
//WifiView引入自Component/WifiView.ets,负责可用WLAN
信息展示的具体实现
}
}
.
id
(
`Wifi
${
index
}
`
)
.
id
(
`Wifi
${
index
}
`
)
//对可用wifi
点击时触发事件
//对可用WLAN
点击时触发事件
.
onClick
(()
=>
{
.
onClick
(()
=>
{
Logger
.
info
(
TAG
,
'
wifi click
'
)
Logger
.
info
(
TAG
,
'
wifi click
'
)
this
.
scanInfo
=
item
this
.
scanInfo
=
item
if
(
this
.
linkedInfo
!==
null
&&
item
.
ssid
===
this
.
linkedInfo
.
ssid
)
{
if
(
this
.
linkedInfo
!==
null
&&
item
.
ssid
===
this
.
linkedInfo
.
ssid
)
{
prompt
.
showToast
({
message
:
'
this wifi is connected
'
})
//如果当前已连接wifi并且点击的就是这个wifi
,创建并显示文本提示框
prompt
.
showToast
({
message
:
'
this wifi is connected
'
})
//如果当前已连接WLAN并且点击的就是这个WLAN
,创建并显示文本提示框
return
return
}
}
if
(
item
.
securityType
===
0
||
item
.
securityType
===
1
)
{
if
(
item
.
securityType
===
0
||
item
.
securityType
===
1
)
{
//如果点击的这个wifi的加密类型是无效加密类型或者开放加密类型,调用model/Wifimodel.ets中的connectNetwork方法连接此wifi
//如果点击的这个WLAN的加密类型是无效加密类型或者开放加密类型,调用model/Wifimodel.ets中的connectNetwork方法连接此WLAN
this
.
wifiModel
.
connectNetwork
(
item
,
''
)
this
.
wifiModel
.
connectNetwork
(
item
,
''
)
return
return
}
}
//如果点击的这个wifi
的加密类型是其他加密类型,则需要输入密码,调用component/PswDialog.ets中的方法进行弹窗的生成
//如果点击的这个WLAN
的加密类型是其他加密类型,则需要输入密码,调用component/PswDialog.ets中的方法进行弹窗的生成
this
.
pswDialogController
.
open
()
this
.
pswDialogController
.
open
()
})
})
},
item
=>
JSON
.
stringify
(
item
))
},
item
=>
JSON
.
stringify
(
item
))
...
@@ -282,26 +292,26 @@ build() {
...
@@ -282,26 +292,26 @@ build() {
.
divider
({
strokeWidth
:
1
,
color
:
Color
.
Gray
,
startMargin
:
10
,
endMargin
:
10
})
.
divider
({
strokeWidth
:
1
,
color
:
Color
.
Gray
,
startMargin
:
10
,
endMargin
:
10
})
.
margin
({
top
:
10
})
.
margin
({
top
:
10
})
}
}
//pswDialogController回调的action函数,将传回的wifi
信息与密码传入model/Wifimodel.ets中的connectNetwork方法中
//pswDialogController回调的action函数,将传回的WLAN
信息与密码传入model/Wifimodel.ets中的connectNetwork方法中
onAccept
(
scanInfo
,
psw
)
{
onAccept
(
scanInfo
,
psw
)
{
Logger
.
info
(
TAG
,
'
connect wifi
'
)
Logger
.
info
(
TAG
,
'
connect wifi
'
)
self
.
wifiModel
.
connectNetwork
(
scanInfo
,
psw
)
self
.
wifiModel
.
connectNetwork
(
scanInfo
,
psw
)
}
}
.................................
...
...
//Component/WifiView.ets
//Component/WifiView.ets
aboutToAppear
()
{
aboutToAppear
()
{
Logger
.
debug
(
TAG
,
`aboutToAppear
${
JSON
.
stringify
(
this
.
wifi
)}
`
)
Logger
.
debug
(
TAG
,
`aboutToAppear
${
JSON
.
stringify
(
this
.
wifi
)}
`
)
if
(
this
.
wifi
)
{
if
(
this
.
wifi
)
{
if
(
this
.
wifi
.
securityType
)
{
if
(
this
.
wifi
.
securityType
)
{
if
(
this
.
wifi
.
securityType
===
0
||
this
.
wifi
.
securityType
===
1
)
{
if
(
this
.
wifi
.
securityType
===
0
||
this
.
wifi
.
securityType
===
1
)
{
//wifi
的加密类型是无效加密类型或者开放加密类型
//WLAN
的加密类型是无效加密类型或者开放加密类型
this
.
securityString
=
$r
(
'
app.string.open
'
)
this
.
securityString
=
$r
(
'
app.string.open
'
)
this
.
isLock
=
false
this
.
isLock
=
false
}
}
}
}
}
}
}
}
build
()
{
build
()
{
Row
()
{
Row
()
{
Column
()
{
Column
()
{
if
(
this
.
wifi
)
{
if
(
this
.
wifi
)
{
...
@@ -311,7 +321,7 @@ build() {
...
@@ -311,7 +321,7 @@ build() {
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
}
}
}
}
//如果wifi
的加密类型是无效加密类型或者开放加密类型,显示“开放”,反之显示“加密”
//如果WLAN
的加密类型是无效加密类型或者开放加密类型,显示“开放”,反之显示“加密”
Text
(
this
.
securityString
)
Text
(
this
.
securityString
)
.
fontSize
(
18
)
.
fontSize
(
18
)
.
fontColor
(
Color
.
Gray
)
.
fontColor
(
Color
.
Gray
)
...
@@ -320,7 +330,7 @@ build() {
...
@@ -320,7 +330,7 @@ build() {
.
layoutWeight
(
1
)
.
layoutWeight
(
1
)
Stack
({
alignContent
:
Alignment
.
BottomEnd
})
{
Stack
({
alignContent
:
Alignment
.
BottomEnd
})
{
//如果wifi
的加密类型是无效加密类型或者开放加密类型,显示不带锁的图标,反之显示带锁的图标
//如果WLAN
的加密类型是无效加密类型或者开放加密类型,显示不带锁的图标,反之显示带锁的图标
Image
(
$r
(
'
app.media.wifi
'
))
Image
(
$r
(
'
app.media.wifi
'
))
.
height
(
30
)
.
height
(
30
)
.
width
(
30
)
.
width
(
30
)
...
@@ -340,10 +350,10 @@ build() {
...
@@ -340,10 +350,10 @@ build() {
.
width
(
'
100%
'
)
.
width
(
'
100%
'
)
.
padding
(
10
)
.
padding
(
10
)
}
}
}
}
.................................
...
...
//model/Wifimodel.ets
//model/Wifimodel.ets
connectNetwork
(
scanInfo
:
wifi
.
WifiScanInfo
,
psw
)
{
connectNetwork
(
scanInfo
:
wifi
.
WifiScanInfo
,
psw
)
{
prompt
.
showToast
({
message
:
'
connecting
'
,
duration
:
5000
})
prompt
.
showToast
({
message
:
'
connecting
'
,
duration
:
5000
})
Logger
.
debug
(
TAG
,
`connectNetwork bssid=
${
scanInfo
.
bssid
}
`
)
Logger
.
debug
(
TAG
,
`connectNetwork bssid=
${
scanInfo
.
bssid
}
`
)
// 这里因为api问题,需要声明为any,已提单
// 这里因为api问题,需要声明为any,已提单
...
@@ -366,8 +376,8 @@ connectNetwork(scanInfo: wifi.WifiScanInfo, psw) {
...
@@ -366,8 +376,8 @@ connectNetwork(scanInfo: wifi.WifiScanInfo, psw) {
Logger
.
debug
(
TAG
,
`addDeviceConfig fail err is
${
JSON
.
stringify
(
err
)}
`
)
Logger
.
debug
(
TAG
,
`addDeviceConfig fail err is
${
JSON
.
stringify
(
err
)}
`
)
}
}
}
}
.................................
...
...
//component/PswDialog.ets
//component/PswDialog.ets
build
()
{
build
()
{
Column
()
{
Column
()
{
Text
(
this
.
scanInfo
.
ssid
)
Text
(
this
.
scanInfo
.
ssid
)
...
@@ -425,7 +435,7 @@ connectNetwork(scanInfo: wifi.WifiScanInfo, psw) {
...
@@ -425,7 +435,7 @@ connectNetwork(scanInfo: wifi.WifiScanInfo, psw) {
}
}
.
padding
(
15
)
.
padding
(
15
)
}
}
```
```
## 全部代码
## 全部代码
...
@@ -433,5 +443,6 @@ connectNetwork(scanInfo: wifi.WifiScanInfo, psw) {
...
@@ -433,5 +443,6 @@ connectNetwork(scanInfo: wifi.WifiScanInfo, psw) {
## 参考
## 参考
[
权限列表
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/permission-list.md#ohospermissiondistributed_datasync
)
-
[
权限列表
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/permission-list.md#ohospermissiondistributed_datasync
)
-
[
@ohos.wifiManager
](
../application-dev/reference/apis/js-apis-wifiManager.md
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录