检查网络和互联网连接 - Android

5
我想知道下面的方法是否会检查我是否连接到网络,并且实际上也可以连接到互联网。
不仅仅是连接到无法访问互联网的网络?
public boolean isNetworkAvailable() {
    ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = manager.getActiveNetworkInfo();

    boolean isAvailable = false;
    if (networkInfo != null && networkInfo.isConnected()) {
        isAvailable = true;
    }
    return isAvailable;
}

我认为它可以,但我不能百分之百确定。
谢谢。

networkInfo.isConnected() 检查网络连接是否存在,以及是否可以建立连接并传递数据。您还可以使用 networkInfo.isConnectedOrConnecting() 来检查网络连接是否存在或正在建立过程中。此外,请确保在 AndroidManifest.xml 中添加权限以访问 wifi 和网络状态,分别为:<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - Virat Singh
4个回答

2

2

请看一下我以前的回答。它有两种不同的方法: 1. 检查设备是否连接到网络 2. 检查设备是否连接到互联网。


0
以下代码将使用Kotlin在Android Studio中检查互联网连接:
private fun amIConnected(): Boolean {
    val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    val activeNetworkInfo = connectivityManager.activeNetworkInfo
    return activeNetworkInfo != null && activeNetworkInfo.isConnected
}

0

我尝试了user:3156908的方法,但当没有网络连接时,我的应用程序一直崩溃。结果发现他的代码存在逻辑错误,所以我使用了connectivityManager.getActiveNetworkInfo() != null来检查网络详细信息。如果设备已连接到网络或正在连接到网络,则使用isConnectedOrConnecting()

在您的AndroidManifest.xml文件中添加以下内容

<!--  Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在您的片段类或活动类中创建一个名为checkInternetConnection的方法,并添加以下代码行。
 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private boolean checkInternetConnection(){
        ConnectivityManager connectivityManager = (ConnectivityManager) mcontext.getSystemService(mcontext.CONNECTIVITY_SERVICE);
        return connectivityManager.getActiveNetworkInfo() != null
                && connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting();
    }

然后您可以在片段的onViewCreated方法或活动的onCreate方法中调用checkInternetConnection

注意 我强烈建议您在连接到WiFi、移动数据和飞行模式时测试代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接