1.在android开发中,需要监听手机网络改变的状态,方便进行下一步的逻辑操作.
2.android监听网络状态需要加入权限:
android.permission.ACCESS_NETWORK_STATE
3.android中,当网络发生改变时,系统会发送广播.
android.net.conn.CONNECTIVITY_CHANGE 网络发生改变.
android.intent.action.USER_PRESENT 用户锁发生改变(锁频下,网络会被终止,除非在网络高级中设置了锁频下不关闭网络。)
4.建立一个广播类(BroadcastReceiver)进行监听两个广播.
5.使用类 NetWorkInfo 得到网络信息.
6.使用ConnectivityManager.getActiveNetworkInfo() 得到当前活动网络的NetWorkInfo实例.
7.使用Context.getSystemService(Context.CONNECTIVITY_SERVICE). 得到ConnectivityManager实例。
public void onReceive(Context context, Intent intent) {
Log.d(LOGTAG, "ConnectivityReceiver.onReceive()...");
String action = intent.getAction();
Log.d(LOGTAG, "action=" + action);
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null) {
Log.d(LOGTAG, "Network Type = " + networkInfo.getTypeName());
Log.d(LOGTAG, "Network State = " + networkInfo.getState());
if (networkInfo.isConnected()) {
Log.i(LOGTAG, "Network connected");
}
} else {
Log.e(LOGTAG, "Network unavailable");
}
}