首页 > 代码库 > Android 判断网络链接

Android 判断网络链接

今天在做判断是否有网络连接时一直报错,后来才知道缺少了权限。

大家都知道Android连网需要添加权限:

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

但是我们在判断时也需要添加访问权限:

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

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

 

判断的思路如下:

首先获取网络通讯类的实例

ConnectivityManagercwjManager(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

使用cwjManager.getActiveNetworkInfo().isAvailable();来返回是否有效,

如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,

具体的可以通过ConnectivityManager 类的getActiveNetworkInfo() 方法判断详细的接入方式。

具体的代码如下:

ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        if(networkInfo == null || !networkInfo.isAvailable())
        {
            //当前有可用网络
        }
        else 
        {
            //当前无可用网络
        }

 

当然,你也可以通过

NetworkInfo[] info = connectivity.getAllNetworkInfo();

的方式,详细请看:http://zhidao.baidu.com/link?url=tHa2_W1ykaRBPG_9931w57ywzmQMfdGpv9FHRFtD8I5zSFCl8lBlpZ05VCfRWTlesVYtkDQUwOKtd3F_9AUzqy-ao4JbOCoFfw8bIlTmD9S