我正在检查设备的网络状态。使用:-
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
我想更进一步,检查设备是否可以访问互联网或给定站点,例如http://www.google.com,如果它可以返回为真,如果不能,那么返回为假。
我的代码的问题是,如果设备连接到路由器并且路由器离线,它将返回 true。我需要一个实际的互联网连接检查。
修改后的代码
public void GoToStation(View v)
{
try {
InetAddress ina = InetAddress.getByName("http://188.65.176.98/");
if(ina.isReachable(3000)) {
Intent myIntent = new Intent(MainActivity.this, CustomizedListViewStation.class);
startActivityForResult(myIntent, 0);
} else {
Toast.makeText(this, "You need a data connection to view Safety Zones", Toast.LENGTH_LONG).show();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}