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"); } }