wifi框架层流程之--Portal认证流程
·
wifi框架层流程之--Portal认证流程
Portal认证调用流程图:

函数伪代码及说明:
相对路径: frameworks\js\napi\src\wifi_napi_device.cpp
NO_SANITIZE("cfi") napi_value StartPortalCertification(napi_env env, napi_callback_info info){
ErrCode ret = wifiDevicePtr->StartPortalCertification();
}
函数说明:
- 用于在 WiFi 连接过程中启动 Portal 网页认证流程,采用 N-API 实现 JavaScript 与 C++ 的交互
相对路径: frameworks\native\src\wifi_device_impl.cpp
ErrCode WifiDeviceImpl::StartPortalCertification(){
return client_->StartPortalCertification();
}
函数说明:
- 启动 Portal 认证的具体实现,在设备实现层执行 Portal 认证的启动操作。
相对路径: frameworks\native\src\wifi_device_proxy.cpp
ErrCode WifiDeviceProxy::StartPortalCertification(){
int error = Remote()->SendRequest(static_cast<uint32_t>(DevInterfaceCode::WIFI_SVR_CMD_START_PORTAL_CERTIF), data,
reply, option);
}
函数说明:
- 通过 IPC 调用远程 WiFi 服务启动 Portal 认证,实现客户端与 WiFi 服务之间的跨进程通信。
相对路径: services\wifi_standard\wifi_framework\wifi_manage\wifi_sta_sa\wifi_device_stub.cpp
void WifiDeviceStub::OnStartPortalCertification(uint32_t code, MessageParcel &data, MessageParcel &reply){
ErrCode ret = StartPortalCertification();
}
函数说明:
- 处理来自客户端的 Portal 认证启动请求,在 WiFi 服务端接收并执行 IPC 调用。
相对路径: services\wifi_standard\wifi_framework\wifi_manage\wifi_sta_sa\wifi_device_service_impl.cpp
ErrCode WifiDeviceServiceImpl::StartPortalCertification()
{
if (!WifiAuthCenter::IsSystemAccess());
if (WifiPermissionUtils::VerifyGetWifiInfoPermission() == PERMISSION_DENIED);
if (WifiPermissionUtils::VerifyGetWifiConfigPermission() == PERMISSION_DENIED);
return pService->StartPortalCertification();
}
函数说明:
- 启动 Portal 认证的服务端核心实现,在 WiFi 系统服务中执行权限验证并调用底层 STA 服务。
相对路径: services\wifi_standard\wifi_framework\wifi_manage\wifi_sta\sta_interface.cpp
ErrCode StaInterface::StartPortalCertification(){
pStaService->StartPortalCertification();
}
函数说明:
- STA 服务启动 Portal 认证的接口封装,在线程安全的环境下调用实际的 STA 服务功能。
相对路径: services\wifi_standard\wifi_framework\wifi_manage\wifi_sta\sta_service.cpp
ErrCode StaService::StartPortalCertification(){
pStaStateMachine->SendMessage(WIFI_SVR_CMD_STA_PORTAL_BROWSE_NOTIFY_EVENT);
}
函数说明:
- 通过状态机发送 Portal 认证浏览通知事件,在 STA 服务层触发 Portal 认证流程。
相对路径: services\wifi_standard\wifi_framework\wifi_manage\wifi_sta\sta_state_machine.cpp
bool StaStateMachine::LinkedState::ExecuteStateMsg(InternalMessagePtr msg)
{
case WIFI_SVR_CMD_STA_PORTAL_BROWSE_NOTIFY_EVENT: {
pStaStateMachine->HandlePortalNetworkPorcess();
}
}
函数说明:
- 接收消息处理,通知Portal 认证浏览。
相对路径: services\wifi_standard\wifi_framework\wifi_manage\wifi_sta\sta_state_machine.cpp
void StaStateMachine::HandlePortalNetworkPorcess(){
if (mPortalUrl.empty());
if (!m_NetWorkState);
OHOS::ErrCode err = WifiNotificationUtil::GetInstance().StartAbility(want);
}
函数说明:
- 启动系统浏览器打开 Portal 认证页面,在检测到Portal 网络时自动触发浏览器进行网页认证。
更多推荐
所有评论(0)