首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Gprs连接

检查Gprs连接
EN

Stack Overflow用户
提问于 2011-02-17 18:46:07
回答 5查看 4.1K关注 0票数 1

我想通过代码检查gprs连接在android中是否处于活动状态,以显示如何检查。我有以下代码。它会起作用吗?

代码语言:javascript
复制
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;
}

我可以用谷歌替换那个网站并检查响应吗?

EN

回答 5

Stack Overflow用户

发布于 2011-10-13 02:51:24

代码语言:javascript
复制
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;
    }       

}
票数 3
EN

Stack Overflow用户

发布于 2011-02-17 18:49:12

我可以用谷歌替换那个网站并检查响应吗?

,也用http替换https,而且不需要点击页面并获得响应。

只需将

HEAD方法与GET相同,只是服务器不能在响应中返回消息体。响应HEAD请求的HTTP标头中包含的元信息应与响应GET请求时发送的信息相同。此方法可用于获取请求所隐含的实体的元信息,而无需传输实体主体本身。此方法通常用于测试超文本链接的有效性、可访问性和最近的修改。

在响应中包含的信息可用于更新来自该资源的先前高速缓存的实体的意义上,对头部请求的响应可以是可高速缓存的。如果新的字段值指示缓存的实体与当前实体不同(如Content-Length、Content-MD5、ETag或Last-Modified中的更改所指示的),则缓存必须将缓存条目视为陈旧。

代码语言:javascript
复制
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;
    }
  }  
票数 1
EN

Stack Overflow用户

发布于 2011-02-17 18:56:18

使用这个简单的方法检查连通性

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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连接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5027890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档