android上检查互联网连接的问题
我正在使用以下代码:android上检查互联网连接的问题,android,connection,Android,Connection,我正在使用以下代码: public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netInfo.isConnec
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
但是有联系或没有联系总是得到正确的答案。
可能吗
谢谢 您是否已将android.permission.ACCESS\u newwork\u状态添加到您的AndroidManifest.xml中? 您要检查网络状态的连接是什么?无线上网?还是边缘
if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.isConnectedOrConnecting()) {
return true;
}
明显地
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
请尝试使用此代码
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
if (activeNetworkInfo == null) {
Toast.makeText(SlideShow.this,
"Network Not Connected...Please Try Again",
Toast.LENGTH_LONG).show();
} else {
if (activeNetworkInfo.isConnected()) {
try {
//Here u can do your task
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("Inside the Exception"
+ e.getMessage());
}
} else if (activeNetworkInfo.isConnectedOrConnecting()) {
Toast.makeText(SlideShow.this,
"Network is connecting Now please patient",
Toast.LENGTH_LONG).show();
}
}
别忘了加上这个
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
检查以下代码
String IsNetworkConnected;
String ConnectionType;
NetworkInfo ActiveNetwork;
ConnectivityManager connectivitymanager;
connectivitymanager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
try
{
ActiveNetwork=connectivitymanager.getActiveNetworkInfo();
ConnectionType=ActiveNetwork.getTypeName();
Isconnected=String.valueOf(ActiveNetwork.getState());
IsNetworkConnected="true";
}
catch(Exception error)
{
IsNetworkConnected="false";
}
我最近在尝试使用
isConnectedOrConnecting()
时遇到了这个问题,并找到了另一种可能的方法:只需在指定的URL上ping答案(例如,选择google.com
,检查整个互联网的可用性)
不要忘记在线程(而不是主线程)中运行此函数
希望这能帮助其他人…不幸的是,你无法在模拟器中模拟wifi状态。你需要在真正的设备上测试你的应用程序!我不能在模拟器中验证这一点吗(那么我的代码可以在真实设备上工作吗?是的,正如我在回答中提到的,您的代码经过一些调整后,将只在真实设备上工作。而不是在模拟器上,很抱歉。要调用函数,上下文必须发送什么?您必须传递活动。此上下文类似于“InternetConnectionCheck.checkConnection(Activity.this)”
String IsNetworkConnected;
String ConnectionType;
NetworkInfo ActiveNetwork;
ConnectivityManager connectivitymanager;
connectivitymanager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
try
{
ActiveNetwork=connectivitymanager.getActiveNetworkInfo();
ConnectionType=ActiveNetwork.getTypeName();
Isconnected=String.valueOf(ActiveNetwork.getState());
IsNetworkConnected="true";
}
catch(Exception error)
{
IsNetworkConnected="false";
}
static public boolean isURLReachable(Context context) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://192.168.1.13"); // Change to "http://google.com" for www test.
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(10 * 1000); // 10 s.
urlc.connect();
if (urlc.getResponseCode() == 200) { // 200 = "OK" code (http connection is fine).
Log.wtf("Connection", "Success !");
return true;
} else {
return false;
}
} catch (MalformedURLException e1) {
return false;
} catch (IOException e) {
return false;
}
}
return false;
}