Android中判断app是否连接网络
16lz
2022-05-26
1.在MyApplication extends Application中添加如下代码:
//判断网络状态 public boolean isConnectInternet() { ConnectivityManager conManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE ); NetworkInfo networkInfo = conManager.getActiveNetworkInfo(); if (networkInfo != null ){ // 注意,这个判断一定要的哦,要不然会出错 return networkInfo.isAvailable(); } return false ; }
//判断WIFI网络是否连接
<pre name="code" class="java">public boolean isWifiConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWiFiNetworkInfo = mConnectivityManager .getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mWiFiNetworkInfo != null) { return mWiFiNetworkInfo.isAvailable(); } } return false; }
//判断手机网络是否连接
public boolean isMobileConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mMobileNetworkInfo = mConnectivityManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mMobileNetworkInfo != null) { return mMobileNetworkInfo.isAvailable(); } } return false; }//获取当前网络连接类型信息
public static int getConnectedType(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { return mNetworkInfo.getType(); } } return -1; }2.在清单文件中添加如下权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,一般可以通过ConnectivityManager来完成该工作。
ConnectivityManager有四个主要任务:
1、监听手机网络状态(包括GPRS,WIFI, UMTS等)
2、手机状态发生改变时,发送广播
3、当一个网络连接失败时进行故障切换
如果只是判断网络连接状态进行处理,则可在相应的Activity中调用
Boolean isConnectioned=MyApplication.getInstance.isConnectInternet();进行有无网络判断。
当我们要在程序中监听网络状态时,只要以下下几个步骤即可:
定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开来改变空间的外观
connectionReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { Log.i(TAG, "unconnect"); // unconnect network }else { // connect network } } };在适当的地方进行上面connectionReceiver的注册
更多相关文章
- Android中子线程网络查看器与Handler消息处理器
- ### Android(安卓)判断app的状态 重启app
- android 笔记:判断手机是否显示虚拟按键
- Android判断是否有网络连接
- Jquery 判断是否 移动设备 浏览
- Android判断app是否打开消息通知并跳转设置
- Android(安卓)底部导航BottomNavigationView(非官方)
- Android将发送的短信插入数据库
- kotlin 开发 android 程序中网络http请求和线程的使用