应用程序启动时如何检查可用的互联网连接[重复]
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() 方法不断检查互联网连接的可用性。以上是关于应用程序启动时如何检查可用的互联网连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章