首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看网络可用性?

如何查看网络可用性?
EN

Stack Overflow用户
提问于 2011-09-14 00:01:48
回答 3查看 8.8K关注 0票数 2

我必须使用wifi (如果可用)或gprs (如果wifi不可用)将我的应用程序与服务器连接。下面是我检查连接可用性的代码

代码语言:javascript
复制
public static final boolean isConnectionAvailable(Activity a)
{  

  ConnectivityManager cm = (ConnectivityManager)a.getSystemService(Context.CONNECTIVITY_SERVICE);

  State mobile = cm.getNetworkInfo(0).getState();

  State wifi = cm.getNetworkInfo(1).getState();

  if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING)
    {
        return true;
    }
  if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING)
    {
        return true;
    }

   return false;
}      

这是正确的方式吗?有没有人能给我一个更好的建议?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-18 14:49:47

下面的方法非常类似,但有一个额外的优势,那就是不关心底层媒介是什么,因为它看起来似乎支持的不仅仅是WiFi。也许这些也包含在移动端,但文档并不是很清楚:

代码语言:javascript
复制
// added as an instance method to an Activity
boolean isNetworkConnectionAvailable() {  
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();     
    if (info == null) return false;
    State network = info.getState();
    return (network == NetworkInfo.State.CONNECTED || network == NetworkInfo.State.CONNECTING);
}     
票数 9
EN

Stack Overflow用户

发布于 2018-05-08 13:32:37

网络可用性检查:

代码语言:javascript
复制
private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
票数 1
EN

Stack Overflow用户

发布于 2021-03-03 17:10:18

或者,您可以使用一些kotlin实现

代码语言:javascript
复制
fun Context.isNetworkAvailable(): Boolean {
val cm = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork: NetworkInfo? = cm.activeNetworkInfo
return activeNetwork?.isConnectedOrConnecting == true

}

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

https://stackoverflow.com/questions/7404917

复制
相关文章

相似问题

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