我有一个套接字使用Wifi或4G信号连接到TCP服务器,该信号每5分钟从服务器接收一次PING . 但是,如果我在设备上关闭Wifi,我希望套接字检测到这一点并使用4g信号重新连接 . 我想知道是否有办法将插座自动重新连接到4G,如果我超出了wifi的范围或者我关闭了wifi?
还有一种方法可以走另一条路(如果无线网络可用,从4g到wifi?
注册一个类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(String,boolean)检索它 . 常数值:“连接”
1 回答
注册一个类BroadCastReceiver以打开或关闭WIFI:
别忘了取消注册接收器:
关于EXTRA_SUPPLICANT_CONNECTED额外,文档说明: