2
我有一个套接字连接到TCP服务器使用Wifi或4G信号,每5分钟从服务器接收一个PING。但是如果我在设备上关闭Wifi,我希望套接字检测到这一点并使用4g信号重新连接。 我想知道是否有一种方法可以自动将插座重新连接到4G,如果我离开wifi的范围或者如果我关闭了WiFi?自动重新连接插座从WiFi到4G
也就是有没有办法走另外一条路,以及(从4G技术连接WIFI如果WiFi可用
我有一个套接字连接到TCP服务器使用Wifi或4G信号,每5分钟从服务器接收一个PING。但是如果我在设备上关闭Wifi,我希望套接字检测到这一点并使用4g信号重新连接。 我想知道是否有一种方法可以自动将插座重新连接到4G,如果我离开wifi的范围或者如果我关闭了WiFi?自动重新连接插座从WiFi到4G
也就是有没有办法走另外一条路,以及(从4G技术连接WIFI如果WiFi可用
注册一个inclass广播接收器收听WIFI或关闭:
IntentFilter filter = new IntentFilter();
filter.addAction("android.net.wifi.supplicant.CONNECTION_CHANGE");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean isConnected = intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false);
if (isConnected) {
//Reconnect using Wifi.
} else {
//Reconnect using 4G.
}
}
}
registerReceiver(receiver, filter);
不要忘记注销接收器:
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
关于EXTRA_SUPPLICANT_CONNECTED额外的文档状态:
布尔值的查找键,指示是否已获取或丢失与请求者守护程序 的连接。 true表示现在存在连接 。用getBooleanExtra(String,boolean)检索它。
常数值:“连接”
所以将这项工作如果无线网络连接上,但该设备没有连接到它?如果我走出wifi的范围... – 2014-12-03 21:34:05
根据[文档](http://developer.android.com/reference/android/net/wifi/WifiManager.html#EXTRA_SUPPLICANT_CONNECTED),它应该。 – Storo 2014-12-03 21:39:09
@ user3322270你试过了吗? – Storo 2014-12-03 23:13:26