如何确定,如果互联网连接当前可用且在Android设备上有效?

我有这个Android应用程序,需要通过互联网从远程服务器加载数据。 这种更新function显然要求设备不仅要连接到某种网络,还要连接到互联网。

所以:想要将更新服务安排到某个日期,当它开始时,它应该确定它是否真的可以到达目标服务器。 因此,一个简单的“是连接到wifi的设备?” 这是不够的,因为该设备可能连接到不提供互联网接入的无线网络。 像PING这样的东西是必需的……

最简单/最好的方法是什么,如果有互联网连接可用,即服务器可以访问?

请在StackOverflow上查看此答案 。 它应该是你正在寻找的。

boolean connected; ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { //we are connected to the internet connected = true; } else connected = false; 

add persmission:

只是尝试连接到您的服务器,如果您没有在可接受的时间段内开始下载进度,则会超时。

这是问题的最佳答案:

设备已连接到路由器,但没有互联网网关处于活动状态。