繁体   English   中英

检查网络和Internet连接-Android

[英]Check Network and Internet Connection - Android

我想知道下面的方法是否可以检查我是否都已连接到网络,并且实际上也可以连接到互联网。

不只是连接到不允许我访问互联网的网络吗?

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;
}

我认为确实如此,但我不确定100%。

谢谢

通过比较这篇文章中可接受的答案与您的代码,您正在做什么。 随意比较代码。 最安全的做法是在飞机模式下,关闭WiFi并在远离WiFi的位置进行一些测试,以确保安全。 祝好运。

Android-以编程方式检查互联网连接并显示对话框(如果未连接)

看一下我的旧答案之一 它有两种不同的方法:1.检查设备是否连接到网络2.检查设备是否连接到Internet。

下面的代码将使用android studio中的kotlin检查互联网连接:

private fun amIConnected(): Boolean {
    val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    val activeNetworkInfo = connectivityManager.activeNetworkInfo
    return activeNetworkInfo != null && activeNetworkInfo.isConnected
}

我尝试使用user:3156908的方法,但是当Internet连接断开时,它不断使我的应用程序崩溃。 事实证明,他的代码存在逻辑错误,因此我使用connectivityManager.getActiveNetworkInfo() != null检查网络详细信息。 如果设备已连接到网络或正在连接到网络,请使用isConnectedOrConnecting()

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

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

在您的片段类Activity类中创建一个名为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,移动数据和飞行模式时对其代码进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM