我想通过代码检查gprs连接在android中是否处于活动状态,以显示如何检查。我有以下代码。它会起作用吗?
public static boolean isOnline(Context context) {
try {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo().isConnectedOrConnecting()) {
URL url = new URL("https://telemeter4tools.services.telenet.be/TelemeterService");
HttpURLConnection urlc = (HttpURLConnection) url
.openConnection();
urlc.setRequestProperty("User-Agent", "My Android Demo");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
} else {
return false;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}我可以用谷歌替换那个网站并检查响应吗?
发布于 2011-10-13 02:51:24
Check below code:
public boolean checkNetworkStatus() {
final ConnectivityManager connMgr = (ConnectivityManager) this
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable()) {
Toast.makeText(this, "Wifi connection.", Toast.LENGTH_LONG).show();
return true;
} else if (mobile.isAvailable()) {
Toast.makeText(this, "GPRS connection.", Toast.LENGTH_LONG).show();
return true;
} else {
Toast.makeText(this, "No network connection.", Toast.LENGTH_LONG).show();
return false;
}
}发布于 2011-02-17 18:49:12
我可以用谷歌替换那个网站并检查响应吗?
是,也用http替换https,而且不需要点击页面并获得响应。
只需将
HEAD方法与GET相同,只是服务器不能在响应中返回消息体。响应HEAD请求的HTTP标头中包含的元信息应与响应GET请求时发送的信息相同。此方法可用于获取请求所隐含的实体的元信息,而无需传输实体主体本身。此方法通常用于测试超文本链接的有效性、可访问性和最近的修改。
在响应中包含的信息可用于更新来自该资源的先前高速缓存的实体的意义上,对头部请求的响应可以是可高速缓存的。如果新的字段值指示缓存的实体与当前实体不同(如Content-Length、Content-MD5、ETag或Last-Modified中的更改所指示的),则缓存必须将缓存条目视为陈旧。
public static boolean isGPRSWorking(String URL){
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
} 发布于 2011-02-17 18:56:18
使用这个简单的方法检查连通性
public boolean isOnline()
{
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
boolean result = false;
if(ni != null )
{
if( ni.getState() == NetworkInfo.State.CONNECTED )
{
result = true;
}
}
return result;
} 使用此功能,我们可以检查连接到设备的任何网络。您可以通过指定其他选项来专门检查WIFI或GPRS
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
// ARE WE CONNECTED TO THE NET
if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) 其中0和1分别表示移动和wifi连接
https://stackoverflow.com/questions/5027890
复制相似问题