我已经进行了很好的搜索并尝试了我看到的各种答案,但它们似乎都不适用于我的情况。我正在寻找一个强大的解决方案,所以,事不宜迟;
我有一个不寻常的情况,我的应用程序需要连接到没有互联网连接的 wifi 网络来执行某些任务(本地网络),一旦完成,它需要断开连接并重新连接到备用网络,无论是移动设备,或具有互联网连接的替代 wifi 热点,以便我可以进行通信。
我遇到的问题是我的通讯队列需要确保它在即将开始通讯时实际上有一条通往互联网的路由(这是在连接更改时触发的)
我在 ConnectivityManager 上尝试过各种调用,例如;
isConnected();
isAvailable();
但即使连接到我的非互联网网络,这些也会返回 true。
我需要一种方法来确保当连接到我的非 Internet 网络(或任何其他非 Internet 网络,如 BT Openzone,例如,当未注册和登录时)我可以被告知没有路由到互联网,然后当我确实有路线时,我可以返回一个 true。
我考虑的一种可能性是 ping,但如果可能的话,我更喜欢更整洁的东西。
我尝试了 requestRouteToHost() 但这并没有达到我的预期,实际上试图改变连接,这不是我想要的。
谢谢