首页 文章

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

提问于
浏览
1

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

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

1 回答

  • 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)检索它 . 常数值:“连接”

相关问题