以编程方式连接到特定 Wi-Fi 网络的 Android“绕过用户批准”不起作用

问题描述

按照 Android 文档,我使用此代码以编程方式连接到特定的 SSID:

private void connectToAP(String ssid,String password) {
   ...
   WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier.Builder()
     .setSsid(ssid)
     .setWpa2Passphrase(password)
     .build();

   NetworkRequest.Builder requestBuilder = new NetworkRequest.Builder()
     .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
     .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
     .setNetworkSpecifier(wifiNetworkSpecifier);

   NetworkRequest request = requestBuilder.build();
   connManager.requestNetwork(request,myNetworkCallback);
   ...
   bindNetwork(); //this method will bind the network without internet
}

如文档 https://developer.android.com/guide/topics/connectivity/wifi-bootstrap#bypass-approval 中所述,如果我没有忘记网络,到该特定 SSID 的第二次连接必须绕过用户批准。

我的问题是:

  1. 调用connectToAP
  2. 用户认可
  3. 联网
  4. 过了一会儿,物联网设备关闭了 wifi 几秒钟
  5. 断开连接回调重试调用connectToAP方法(第 1 点),但未按预期绕过用户批准(第 2 点)

我做错了什么? 谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)