我正在使用Android设备连接到Wi-Fi网络的应用程序。此Wi-Fi网络无法访问互联网 - 它是由终端设备创建的Wi-Fi网络,仅用于使用TCP套接字与其通信。我希望能够通过Wi-Fi与Android设备通信时访问Android设备上的蜂窝数据互联网连接,我想知道这是否可行。
目前我所知道的是:
考虑到这些:
当我通过设备中的SIM卡连接到Wi-Fi网络并启用LTE时,我能够使用192.168.xx格式的“本地”IP地址获取 wlan0接口和 rmnet0接口与非本地IP地址。
但是,根据设备的不同,我一次只能访问其中一个设备。
例如,在运行Oreo 8.1,启用LTE,启用蜂窝数据始终开启的Pixel 2 XL上:
我无法通过Wi-Fi进行通信。使用Wi-Fi本地地址创建的任何套接字超时。
在运行Nougat 7.1的Galaxy Tab S2 SM-T818W上启用LTE,启用蜂窝数据始终开启:
我能够通过Wi-Fi进行通信,但无法访问蜂窝数据接口。
我能够访问Pixel 2 XL上的wlan0接口的唯一方法是从Android的requestNetwork调用ConnectivityManager API并使用TRANSPORT_WIFI功能请求网络,但这从现在所有通信和套接字仅绑定到Wi-Fi网络。
我知道当启用USB网络共享时,可以通过指定Socket连接上的本地地址访问虚拟USB“以太网”接口上的设备,该接口通过wlan0接口或甚至rmnet0接口显示为eth0调用。它似乎只是Wi-Fi和蜂窝数据的问题。
我想知道这是否是固有的和预期的Android限制,或者是否有办法在我缺少的同时访问这两个界面。
感谢您的帮助。请告诉我,如果我提供特定的代码片段会更好,我不确定,因为它会使这篇文章很长。
最佳,