我有一个套接字,它使用Wifi或4G信号连接到TCP服务器,每5分钟从服务器接收PING。但是,如果我在设备上关闭了Wifi,我希望插座能够检测到这一点,并使用4g信号重新连接。我在想,如果我超出了wifi的范围,或者我是否关闭了wifi,是否有办法自动地将插座连接到4G上?
另外,如果wifi可用的话,还有其他方法(从4g到wifi )吗?
发布于 2014-12-03 21:29:24
注册一个类内的BroadCastReceiver来收听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(字符串、布尔值)检索它。 常量值:“连接”
https://stackoverflow.com/questions/27281229
复制相似问题