调用RemoveNetwork时,Android WifiManager失败

问题描述

我已经实现了一个应用程序,该应用程序将允许用户连接到所需的网络。

如果已经通过电话记住了SSID记录。它将通知用户手动删除SSID记录。

这是一些示例代码

temp = -1;
for (int i = 0; i < WiFi.Configurednetworks.Count; i++)
{
    if (String.Compare(WiFi.Configurednetworks[i].Ssid,("\"" + SSID + "\"")) == 0)
    {
        temp = WiFi.Configurednetworks[i].NetworkId;
        break;
    }
}

if(temp != -1) //This SSID is already remembered by phone
{
    bool success = WiFi.RemoveNetwork(temp)

    if(success == false)
    {
        //Call some function to notify user to manually remove the network
    }
}

事情在//Call some function to notify user to manually remove the network发生了。

有时用户会转到wifi系统页面。他们发现没有该SSID的记录。

我认为,如果RemoveNetwork()返回失败,则意味着该SSID已经被电话记住。

它不是由当前应用程序构建的。

那是错吗?

问题在设备Nokia 8(Android 9)上发生。

解决方法

WifiManager的文档说:

Compatibility Note: For applications targeting Build.VERSION_CODES.Q or above,this API will always fail and return false.

如果您的API级别低于29,则您可能未通过有效的NetworkId