在我的android应用程序中,我正在查询数据库。如果手机连接到内部网络,我只能查询数据库,即:通过连接到公司WiFi,或使用VPN连接。
我想先检查一下这个连接 - 可能是先尝试'ping'服务器?这可能吗?
感谢。
答案 0 :(得分:1)
尝试连接到network / database / ip并处理任何抛出的异常b / c网络无法访问或b / c超时。
您也可以尝试使用isReachable()方法的InetAddress。
答案 1 :(得分:0)
如果你真的想检查网络状态,你可以考虑使用android.net.ConectivityManager。
ConectivityManager.requestRouteToHost()可以用来确保服务器是可以访问的(虽然对其可靠性提出了疑问 - 在CommonsWare中提到答案:how to mange wifi internet connectivity in android?)
或者,如果您只是想检查WIFI是否已连接,请尝试
ConectivityManager.getNetworkInfo(ConectivityManager.TYPE_WIFI).isConnected()
一些警告:
1)我在浏览器中输入此内容而不是IDE,因此可能存在语法错误,
2)你必须使代码更具防御性,并且
3)如果网络当前可用或不可用,ConectivityManager中的所有连接测试都可能不可靠。
希望这涵盖了你的要求。