【问题标题】:Lollipop switch active network to wifi (even when there is no internet) for TCP and multicast UDP supportLollipop 将活动网络切换到 wifi(即使没有互联网)以支持 TCP 和多播 UDP
【发布时间】:2015-03-17 16:30:34
【问题描述】:

我有一些不需要互联网访问的本地网络服务。如果在 wifi 网络(感叹号图标)上未检测到 Internet 连接,Lollipop android 可以自动将其活动网络切换到移动数据。我收到 ConnectivityManager.CONNECTIVITY_ACTION 广播,说移动设备正在接管。

发生这种情况时,我似乎无法建立 TCP 连接,并且即使我获得了 MulticastLock,也会忽略多播 UDP 数据包。我尝试重新获取它,使用了 requestNetworkFeature()、setNetworkPreference() 和 ConnectivityManager 必须提供的几乎所有其他方法,但没有任何帮助。

但是关闭移动数据会使 android 切换回 wifi,我收到广播,它的切换和一切恢复正常。似乎 wifi 网络必须是活动网络才能具有完整的功能。

有没有办法在没有网络的情况下强制系统使用wifi?

【问题讨论】:

    标签: android android-wifi


    【解决方案1】:

    我遇到了类似的问题。通过使用新的android.net.Network 类及其方法bindSocket,我至少能够通过WiFi 建立套接字连接。

    只需从ConnectivityManager.getAllNetworks() 选择 WiFi 网络,然后将您的套接字绑定到此网络或使用网络中的套接字工厂。

    Network 类和ConnectivityManager 中的相应方法需要 SDK 21,但如果您不想切换 SDK,可以使用反射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2016-09-19
      • 2011-10-22
      • 2017-07-18
      • 1970-01-01
      相关资源
      最近更新 更多