我正在使用以下代码连接到没有互联网连接的WiFi网络,因为它拥有自己的网络服务器,我想连接即使没有互联网连接 .
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = String.format("\"%s\"", scanResult.SSID);
wifiConfiguration.preSharedKey = String.format("\"%s\"", "secret");
int netId = wifiManager.addNetwork(wifiConfiguration)
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
这适用于Android Marshmallow下面的每个设备(我使用CM13,所以它可能与CyanogenMod有关?):当我使用此代码连接时,Android仍然使用移动连接并用感叹号标记WiFi符号 . 几秒钟之后它会显示一个问题通知我是否要保持连接,因为网络没有互联网连接 .
问题:我的应用尝试自动连接到我的网络服务器失败,因为显然没有互联网连接 . 当然可以等到我能够访问我的网络服务器,但它应该在没有用户交互的情况下工作 .
ChromeCast or any other IoT device 如何解决这个问题?我在设置ChromeCast设备时从未看到过这样的通知 .
1 回答
我通过将当前进程绑定(
connectivityManager.bindProcessToNetwork(network);
)到连接的网络来解决这个问题 . 这可以防止"keep using this network"对话,并允许您通过wifi与设备通信 .