自动重新连接从wifi到4G的插座

时间:2014-12-03 20:43:13

标签: android sockets wifi

我有一个套接字,使用Wifi或4G信号连接到TCP服务器,该信号每5分钟从服务器接收一次PING。但是,如果我在设备上关闭Wifi,我希望套接字检测到这一点并使用4g信号重新连接。  我想知道是否有办法将插座自动重新连接到4G,如果我超出了wifi的范围或者我关闭了wifi?

还有另外一种方法可以走另一条路(如果有无线网络,可以从4g到wifi吗?

1 个答案:

答案 0 :(得分:1)

注册一个类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)检索它。

     

常数值:"已连接"