【发布时间】:2013-10-14 23:00:06
【问题描述】:
我想知道如何在应用程序启动之前检查互联网连接是否可用。当单击应用程序列表中的应用程序按钮时,我想显示对话框连接到互联网,或者请在启动此应用程序之前连接到互联网。
我试过了,但我做不到。
谁能帮帮我?
【问题讨论】:
标签: android
我想知道如何在应用程序启动之前检查互联网连接是否可用。当单击应用程序列表中的应用程序按钮时,我想显示对话框连接到互联网,或者请在启动此应用程序之前连接到互联网。
我试过了,但我做不到。
谁能帮帮我?
【问题讨论】:
标签: android
试试这个:
public boolean isNetworkAvailable(Context context)
{
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
您应该从您的第一个 Activity 的 onCreate 中调用它,或者如果您想真正完成整个过程,您可以覆盖 Application,并在那里调用它(您需要在您的 Activity 中连接它)。
希望这会有所帮助。
【讨论】:
第 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;
}
尝试这些步骤,如果您有任何问题,请告诉我...:)
【讨论】:
public boolean isNetworkAvailable(Context ct)
{
ConnectivityManager connectivityManager = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
只需在此处发送上下文。如果有互联网,它将返回 True 否则返回 False
【讨论】:
试试这个:
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;
}
【讨论】:
使用以下代码。
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();
【讨论】: