如何检查Android设备是否连接到网络?

时间:2010-05-07 15:14:54

标签: android

我如何知道我的设备是否已连接到网络?我如何检测连接?任何示例代码?

4 个答案:

答案 0 :(得分:54)

首先,您需要获得许可才能知道设备是否已连接到网络。这需要在您的清单中,在<manifest>元素中:

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

接下来,您需要获得对ConnectivityManager

的引用
ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE);

从那里你需要获得一个NetworkInfo对象。对于大多数人来说,这意味着使用ConnectivityManager. getActiveNetworkInfo()

NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
    // There are no active networks.
    return false;
}

从那里,你只需要使用NetworkInfo的一种方法来确定设备是否连接到互联网:

boolean isConnected = ni.isConnected();

答案 1 :(得分:6)

首先,您需要获得许可才能知道设备是否已连接到网络。这需要在你的清单中,在元素中:

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

然后

ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

if (connec != null && (
    (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) || 
    (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED))) { 

        //You are connected, do something online.

} else if (connec != null && (
    (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) ||
    (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED ))) {            

        //Not connected.    
        Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show();

} 

答案 2 :(得分:4)

在AppManifest.xml文件中添加此权限:

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

检查网络是否可用的方法:

boolean isNetworkAvailable() {
  ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

  NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
  boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
  return isConnected;
}

Source

答案 3 :(得分:0)

相关问题