network: android 网络判断
16lz
2021-12-04
转自: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手机还是ios手机
- 关于android中网络图片下载中oom解决开源框架Afinal的探究
- 第1章 Java基本概念及环境配置——FAQ1.04 Android与Java语言有
- Android(安卓)HttpURLConnection应用技巧分享
- android中网络操作使用总结(http)
- Android(五)数据存储之五网络数据交互
- Android——获取手机当前信号强度(dbm/asu值)
- android 在android中教你一行代码判断是不是主线程
- Android双机(网络和USB)调试及其完美ROOT