network: android 网络判断
16lz
2021-01-23
转自:http://blog.csdn.net/androidbluetooth/article/details/6860146
直接上代码,没有什么好说的!
[java] view plain copy print ?
- packagemark.zhang;
- importjava.util.List;
- importandroid.content.Context;
- importandroid.location.LocationManager;
- importandroid.net.ConnectivityManager;
- importandroid.net.NetworkInfo;
- importandroid.telephony.TelephonyManager;
- publicclassNetworkProber{
- /**
- *网络是否可用
- *
- *@paramactivity
- *@return
- */
- publicstaticbooleanisNetworkAvailable(Contextcontext){
- ConnectivityManagerconnectivity=(ConnectivityManager)context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- if(connectivity==null){
- }else{
- NetworkInfo[]info=connectivity.getAllNetworkInfo();
- if(info!=null){
- for(inti=0;i<info.length;i++){
- if(info[i].getState()==NetworkInfo.State.CONNECTED){
- returntrue;
- }
- }
- }
- }
- returnfalse;
- }
- /**
- *Gps是否打开
- *
- *@paramcontext
- *@return
- */
- publicstaticbooleanisGpsEnabled(Contextcontext){
- LocationManagerlocationManager=((LocationManager)context
- .getSystemService(Context.LOCATION_SERVICE));
- List<String>accessibleProviders=locationManager.getProviders(true);
- returnaccessibleProviders!=null&&accessibleProviders.size()>0;
- }
- /**
- *wifi是否打开
- */
- publicstaticbooleanisWifiEnabled(Contextcontext){
- ConnectivityManagermgrConn=(ConnectivityManager)context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- TelephonyManagermgrTel=(TelephonyManager)context
- .getSystemService(Context.TELEPHONY_SERVICE);
- return((mgrConn.getActiveNetworkInfo()!=null&&mgrConn
- .getActiveNetworkInfo().getState()==NetworkInfo.State.CONNECTED)||mgrTel
- .getNetworkType()==TelephonyManager.NETWORK_TYPE_UMTS);
- }
- /**
- *判断当前网络是否是wifi网络
- *if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE){//判断3G网
- *
- *@paramcontext
- *@returnboolean
- */
- publicstaticbooleanisWifi(Contextcontext){
- ConnectivityManagerconnectivityManager=(ConnectivityManager)context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfoactiveNetInfo=connectivityManager.getActiveNetworkInfo();
- if(activeNetInfo!=null
- &&activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI){
- returntrue;
- }
- returnfalse;
- }
- /**
- *判断当前网络是否是3G网络
- *
- *@paramcontext
- *@returnboolean
- */
- publicstaticbooleanis3G(Contextcontext){
- ConnectivityManagerconnectivityManager=(ConnectivityManager)context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfoactiveNetInfo=connectivityManager.getActiveNetworkInfo();
- if(activeNetInfo!=null
- &&activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE){
- returntrue;
- }
- returnfalse;
- }
- }
另外还有两个方法判断网络是否可用:
[java] view plain copy print ?
- publicstaticbooleanisNetworkAvailable_00(Contextcontext){
- ConnectivityManagercm=((ConnectivityManager)context
- .getSystemService(Context.CONNECTIVITY_SERVICE));
- if(cm!=null){
- NetworkInfoinfo=cm.getActiveNetworkInfo();
- if(info!=null&&info.isConnectedOrConnecting()){
- returntrue;
- }
- }
- returnfalse;
- }
- publicstaticbooleanisNetworkAvailable_01(Contextcontext){
- ConnectivityManagercm=(ConnectivityManager)context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfonetwork=cm.getActiveNetworkInfo();
- if(network!=null){
- returnnetwork.isAvailable();
- }
- returnfalse;
- }
更加严谨的写法:
[java] view plain copy print ?
- publicstaticbooleancheckNet(Contextcontext){
- try{
- ConnectivityManagerconnectivity=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
- if(connectivity!=null){
- NetworkInfoinfo=connectivity.getActiveNetworkInfo();
- if(info!=null&&info.isConnected()){
- if(info.getState()==NetworkInfo.State.CONNECTED){
- returntrue;
- }
- }
- }
- }catch(Exceptione){
- returnfalse;
- }
- returnfalse;
- }
更多相关文章
- android网络优化
- android 网络访问-图片处理优秀开源项目 (201
- 【Android】仿UC网络判断效果
- Android 检测网络连接状态
- android获取网络类型
- Android:下载网络图片
- android 网络状态监听