ConnectivityManager主要管理和网络连接相关的操作;
TelephonyManager则管理和手机、运营商等的相关信息;
WifiManager则管理和wifi相关的信息。
想访问网络状态,首先得添加权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
NetworkInfo类包含了对wifi和mobile两种网络模式连接的详细描述,通过其getState()方法获取的State对象则代表着连接成功与否等状态。
// 获取代表联网状态的NetWorkInfo对象
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
通过 info.isAvailable()判断当前网络是否可用。
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
通过 info != null && info.isConnected() && info.isAvailable();判断Wifi是否可用。