HarmonyOS鸿蒙Next中应用使用WifiNetworkSpecifier调用连接指定wifi的代码,出现系统弹窗连上对应热点后又迅速断开,一直重复出现连接弹窗

HarmonyOS鸿蒙Next中应用使用WifiNetworkSpecifier调用连接指定wifi的代码,出现系统弹窗连上对应热点后又迅速断开,一直重复出现连接弹窗 需求背景:应用最低运行版本是Android Q,要连接 IoT 设备发出的 AP 热点,由于版本原因以前的 wifiManager 接口已被废弃,只能转而使用 WifiNetworkSpecifier 接口

问题现象:在华为 (Android 和鸿蒙系统) 手机上面测试发现,弹窗后点击连接指定 wifi,系统会马上切换 wifi,弹窗又会底部重新弹出,然后一直死循环,尝试了其他厂商设备如三星,谷歌的 Android 10 版本的手机和平板,没有出现对应的问题

尝试解决:发现该热点之前在系统 WiFi 设置界面连接过,在手动取消保存后,再次进入应用连接发现运行正常,不会再反复的弹窗

仍然存在的问题:由于权限问题,App 内不能主动删除系统缓存的 wifi,有没有什么办法可以检测要连接的热点是否有被系统保存过,然后应用提示用户跳转系统设置界面去取消保存呢?

以下是我应用内执行连接热点的代码

WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder();
builder.setSsid(ssid);
if (!TextUtils.isEmpty(pwd)) {
    builder.setWpa2Passphrase(pwd);
}
WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();
NetworkRequest request = new NetworkRequest.Builder()
        .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
        .removeCapability(NetworkCapabilities.NET_CAPABILITY_WIFI_P2P)
        .setNetworkSpecifier(wifiNetworkSpecifier)
        .build();
mConnectivityManager.requestNetwork(request, mNetworkCallback);
4 回复

可以提个工单进行跟踪

更多关于HarmonyOS鸿蒙Next中应用使用WifiNetworkSpecifier调用连接指定wifi的代码,出现系统弹窗连上对应热点后又迅速断开,一直重复出现连接弹窗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


哈喽哈喽 这个问题现在有解决掉吗? 我们也遇到了,

在HarmonyOS鸿蒙Next中,使用WifiNetworkSpecifier调用连接指定WiFi时,如果出现系统弹窗连上热点后又迅速断开,并重复出现连接弹窗,可能是由于以下原因导致的:

  1. 网络配置不完整或不正确:WifiNetworkSpecifier需要正确配置SSID、BSSID、密码等信息。如果配置不完整或错误,系统可能无法稳定连接。

  2. 系统权限问题:应用可能没有正确的权限来保持WiFi连接。确保应用已获取ACCESS_WIFI_STATECHANGE_WIFI_STATE等必要权限。

  3. 网络冲突或干扰:设备可能同时尝试连接多个网络,或者有其他网络干扰导致连接不稳定。

  4. 系统或应用Bug:可能是系统或应用本身的Bug导致连接不稳定。检查是否有相关的系统更新或应用更新。

  5. WiFi模块驱动问题:设备的WiFi模块驱动可能存在兼容性问题,导致连接不稳定。

  6. 热点配置问题:目标热点的配置可能存在问题,例如密码错误、频段不兼容等。

  7. 系统资源限制:设备可能由于资源限制(如内存、CPU等)无法保持稳定的WiFi连接。

  8. 网络切换策略:系统可能根据网络质量自动切换网络,导致连接不稳定。

  9. 应用后台限制:如果应用在后台运行,系统可能限制其网络访问权限,导致连接断开。

  10. 设备硬件问题:设备的WiFi模块可能存在硬件故障,导致连接不稳定。

建议检查上述可能的原因,并根据具体情况进行调整或修复。

在HarmonyOS鸿蒙Next中,使用WifiNetworkSpecifier连接指定WiFi时,若出现系统弹窗反复连接又断开的情况,可能是以下原因导致:

  1. 权限问题:确保应用已获取ACCESS_FINE_LOCATIONCHANGE_WIFI_STATE权限。
  2. 网络配置错误:检查WifiNetworkSpecifier的SSID和密码是否正确。
  3. 系统限制:某些系统版本可能对WiFi连接有特殊限制,建议检查系统更新或使用其他连接方式。
  4. 网络冲突:确保设备未同时连接其他网络,避免冲突。

建议调试时检查日志,确认具体错误信息,并根据提示调整代码或权限设置。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!