Android 中在程序启动的时候自动检测网络状态(WiFi/手机网络)

时间:2022-07-11 19:05:07

最近做公司的项目,是一个商城类项目,需要登录的时候,判断网络连接状态,然后提示用户,让其连接网络。可以在全局Application中定义,这样就可以在程序中随时检测手机联网状态

具体代码如下:State.CONNECTING:为已连接;

manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState():为手机网络状态。其中CONNECTION_EXCEPTION为连接异常。DISCONNECTED:已断开连接;DISABLED:已禁用;这些属性可以都添加在代码里,增加代码的严密性。

private void CheckNetworkState() {
boolean flag = false;
ConnectivityManager manager = (ConnectivityManager)getSystemService(
Context.CONNECTIVITY_SERVICE);
State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(mobile == State.CONNECTED||mobile==State.CONNECTING)
return;
if(wifi == State.CONNECTED||wifi==State.CONNECTING)
return;
Toast.makeText(getApplicationContext(), "请检查网络!", 0).show();

}

另外需要在Mainfest中添加权限:

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