版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chennai1101/article/details/83578307
相关文章
Android BatteryManager类
Android TelephonyManager类
Android ConnectivityManager类
Android Vibrator类
1. ConnectivityManager类
ConnectivityManager类用来判断网络服务
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
通过NetworkInfo的状态来判断联网状态,isAvailable()
联网是否就绪,isConnected()
是否已经链接。
networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();
NetworkInfo其他方法
-
getType(), 网络类型
ConnectivityManager.TYPE_MOBILE ConnectivityManager.TYPE_WIFI
-
isRoaming(),是否漫游
-
getState(),获取连接状态
-
getDetailedState(),获取详细状态
-
isFailover(),是否连接失败。
需要权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2. 监听网络状态
通过广播监听网络状态,action
为ConnectivityManager.CONNECTIVITY_ACTION
。
@Override
protected void onResume() {
super.onResume();
registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mReceiver);
}
自定义BroadcastReceiver
来捕捉网络状态变化
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
}
}
};