应用程序启动时如何检查可用的互联网连接[重复]

Posted

技术标签:

【中文标题】应用程序启动时如何检查可用的互联网连接[重复]【英文标题】:How to check internet connection available or not when application start [duplicate] 【发布时间】:2013-10-14 23:00:06 【问题描述】:

我想知道如何在应用程序启动之前检查互联网连接是否可用。当单击应用程序列表中的应用程序按钮时,我想显示对话框连接到互联网,或者请在启动此应用程序之前连接到互联网。

我试过了,但我做不到。

谁能帮帮我?

【问题讨论】:

【参考方案1】:

试试这个:

public boolean isNetworkAvailable(Context context)
    
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null;
    

您应该从您的第一个 Activity 的 onCreate 中调用它,或者如果您想真正完成整个过程,您可以覆盖 Application,并在那里调用它(您需要在您的 Activity 中连接它)。

希望这会有所帮助。

【讨论】:

看起来不错。我将使用 NetworkInfo.isConnected() 添加一个网络是否已连接的检查。请参阅android.codota.com/scenarios/51891727da0a4288a823cbdc/… 上的示例【参考方案2】:

第 1 步: 在 Manifest.xml 中添加访问 NetworkState 的权限。

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

第 2 步:

public static boolean isNetworkAvailable(Context context) 
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) 
        return true;
    
    return false;

尝试这些步骤,如果您有任何问题,请告诉我...:)

【讨论】:

我想用应用程序负载来识别它。那么我应该在哪里添加这个? 你可以在Utility.java中保留这个方法,你可以从Application类的onCreate()调用这个方法。有关应用程序类的更多详细信息,请关注this link。【参考方案3】:
public boolean isNetworkAvailable(Context ct)

    ConnectivityManager connectivityManager = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;

只需在此处发送上下文。如果有互联网,它将返回 True 否则返回 False

【讨论】:

【参考方案4】:

试试这个:

public static boolean isOnline(Context ctx) 

    NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    if (info == null && !info.isConnected() ) 
        return false;
    
    if (info.isRoaming()) 
        return false;
    
    return true;

【讨论】:

【参考方案5】:

使用以下代码。

package com.example.app;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;


public class ConnectionManager 

    private Context context;

    public ConnectionManager(Context context)
        this.context = context;
    
    public boolean isConnectingToInternet()

        ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] info = cm.getAllNetworkInfo();
        if (info != null)
            for (int i = 0; i < info.length; i++)
                if (info[i].getState() == NetworkInfo.State.CONNECTED)
                    return true;
                
            
        
        return false;
    

然后在您的 MainActivity 中调用 isConnectingToInternet,如下所示。

ConnectionManager cm = new ConnectionManager(this);

boolean connection = cm.isConnectingToInternet();

【讨论】:

嗨,一旦我连接到我的 Wi-Fi,此方法返回 true,但没有可用的互联网连接,那么我如何检测网络是否真的可用 然后你必须在后台调用 isConnectingToInternet() 方法不断检查互联网连接的可用性。

以上是关于应用程序启动时如何检查可用的互联网连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在具有互联网数据速度的android中检查网络可用[重复]

没有互联网时应用程序崩溃[重复]

验证可用的网络连接和启用位置服务以使用应用程序 [重复]

Webview 应用程序检查网络并在没有网络时显示“无互联网连接”,并在网络可用时重新加载

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

检查互联网连接是不是可用[重复]