我想添加我的应用程序布尔值来检查设备是否连接到Internet。 我找到了this question
但我无法在我的应用中使用它。 这是代码:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
public static boolean hasActiveInternetConnection(Context context) {
if (isNetworkAvailable(context)) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
}
} else {
}
return false;
}
这是我的MainActivity。我收到这个错误:
MainActivity类型中的方法isNetworkAvailable()不是 适用于参数(上下文)
为什么我收到此错误?我的代码出了什么问题?或者我只是需要将这些方法放在不同的活动中?
答案 0 :(得分:2)
确保您在androidmanifest.xml中添加特定权限,然后
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
替换为此代码
private boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
public static boolean hasActiveInternetConnection(Context context) {
if (isNetworkAvailable(context)) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
}
} else {
}
return false;
}
答案 1 :(得分:0)
你的isNetworkAvailable
,不是参数,而是你用上下文对象调用它
if (isNetworkAvailable(context))
导致编译时错误。您可以更改isNetworkAbailable
的签名
private static boolean isNetworkAvailable(Context context) {
}