我已经仔细搜索并尝试了各种答案,但它们似乎都不能在我的情况下起作用。我正在寻找一个强大的解决方案,因此,不再多说;
我的应用程序需要连接到没有互联网连接的wifi网络以执行某些任务(本地网络),完成后,它需要断开连接并重新连接到另一个网络,可以是移动网络或具有互联网连接的另一个wifi热点,以进行通信。
我的问题是,当通信队列即将开始通信时(这些通信是在连接更改时触发的),它需要确保实际上有一条通往互联网的路线。
我已经尝试了ConnectivityManager上的各种调用,例如;
我的应用程序需要连接到没有互联网连接的wifi网络以执行某些任务(本地网络),完成后,它需要断开连接并重新连接到另一个网络,可以是移动网络或具有互联网连接的另一个wifi热点,以进行通信。
我的问题是,当通信队列即将开始通信时(这些通信是在连接更改时触发的),它需要确保实际上有一条通往互联网的路线。
我已经尝试了ConnectivityManager上的各种调用,例如;
isConnected();
isAvailable();
但是即使连接到我无法上网的网络,这些返回值也是true。
我需要一种方法来确保当连接到我的无法上网的网络(或任何其他无法上网的网络,例如BT Openzone,例如未注册和登录时),我可以被告知没有通往互联网的路由,然后当我有路由时,我可以返回一个true。
我考虑了一种可能性是ping,但如果可能的话,我更希望有一种更简洁的方法。
我尝试了requestRouteToHost(),但它没有达到我的期望,实际上会尝试更改连接,这不是我想要的。
谢谢