如何在android中检查当前的互联网连接是否可用

新手上路,请多包涵

我也想离线执行我的应用程序,所以我需要检查当前是否有可用的互联网连接。谁能告诉我如何检查 android 中是否有互联网可用?给出示例代码。我尝试使用下面的代码并使用模拟器进行检查,但它不起作用

public  boolean isInternetConnection()
{

    ConnectivityManager connectivityManager =  (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    return connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting();
}

谢谢

原文由 mohan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 731
2 个回答

这将告诉您是否已连接到网络:

 boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
            connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
        //we are connected to a network
        connected = true;
    }
    else
        connected = false;

警告: 如果您连接到不包括互联网访问或需要基于浏览器的身份验证的 WiFi 网络,则 connected 仍然为真。

您将在清单中需要此权限:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

原文由 james 发布,翻译遵循 CC BY-SA 3.0 许可协议

我发现这里的当前答案已被弃用,所以我找到了这个简单的解决方案

val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if(connectivityManager.isActiveNetworkMetered)
   println("online")

原文由 Jansel Alejandro Lopez Bouza 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题