Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络

转自:http://blog.csdn.net/u014649598/article/details/39520629


如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);  ,使用cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,具体的可以通过ConnectivityManager 类的getActiveNetworkInfo() 方法判断详细的接入方式,需要注意的是有关调用需要加入<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  这个权限,android开发网提醒大家在真机上Market和Browser程序都使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检查下网络连接是否存在,以免浪费手机上的电力资源

判断网络是否连接资源地址:http://download.csdn.net/detail/u014649598/7966901

 

 

一、判断网络连接是否可用,不可用跳转到设置界面

[java]  view plain  copy
  1. @Override  
  2.     protected void onStart() {  
  3.         AlertDialog.Builder builder=new Builder(this);  
  4.           
  5.                 //检查用户的网络情况  
  6.                 ConnectivityManager cm=(ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);  
  7.                 //返回當前可用網絡信息  
  8.                   
  9.                 NetworkInfo info=cm.getActiveNetworkInfo();  
  10.                 if(info!=null&&info.isConnected()){  
  11.                     Toast.makeText(MainActivity.this"网络可用"0).show();  
  12.                       
  13.                 }else{  
  14.                     Toast.makeText(MainActivity.this"网络不可用"0).show();  
  15.                     builder.setTitle("提醒");  
  16.                     builder.setMessage("当前网络不可用,点击确定设置网络");  
  17.                     builder.setPositiveButton("确定"new OnClickListener() {  
  18.                           
  19.                         @Override  
  20.                         public void onClick(DialogInterface dialog, int which) {  
  21.                     Intent intent=new Intent();  
  22.                     intent.setClassName("com.android.settings""com.android.settings.Settings");  
  23.                     startActivity(intent);  
  24.                 }  
  25.             }  
  26.         );  
  27.                     builder.create().show();  
  28.                 }  
  29.           
  30.         super.onStart();  
  31.     }  


二、使用ConnectionChangeReceiver判断网络是否可用

 

[java]  view plain  copy
  1. public class MainActivity extends Activity {  
  2.     private ConnectionChangeReceiver myReceiver;  
  3.   
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.activity_main);  
  8.         //用广播判断  
  9.         myReceiver=new ConnectionChangeReceiver();  
  10.         this.registerReceiver(myReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));    
  11.     }  
  12. public class ConnectionChangeReceiver extends BroadcastReceiver  
  13.     {  
  14.         @Override  
  15.         public void onReceive(Context context, Intent intent) {  
  16.             ConnectivityManager connectivityManager = (ConnectivityManager)  
  17.                     context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  18.             NetworkInfo mobworkInfo = connectivityManager  
  19.                     .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
  20.             NetworkInfo wifiworkInfo = connectivityManager  
  21.                     .getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
  22.             boolean IsNetConnected = mobworkInfo.isConnected();  
  23.             boolean IsWifiConnected = wifiworkInfo.isConnected();  
  24.             if(IsNetConnected || IsWifiConnected){  
  25.                 System.out.println("网络打开");  
  26.                 Log.e("wankai""wankai");  
  27.                 boolean isConnected = true;           
  28.             }else{  
  29.                 boolean isConnected = false;  
  30.                 System.out.println("网络关闭");   
  31.                 Log.e("wankai2""wangguan");  
  32.             }  
  33.         }         
  34.     }  
  35.   
  36.   
  37. }  
[java]  view plain  copy
  1.   

三、判断GPS是否打开

[java]  view plain  copy
  1. public static boolean isGpsEnabled(Context context) {     
  2.        LocationManager lm = ((LocationManager) context     
  3.                .getSystemService(Context.LOCATION_SERVICE));     
  4.        List<String> accessibleProviders = lm.getProviders(true);     
  5.        return accessibleProviders != null && accessibleProviders.size() > 0;     
  6.    }   


 

四、判断WIFI是否打开

[java]  view plain  copy
  1. public static boolean isWifiEnabled(Context context) {     
  2.         ConnectivityManager mgrConn = (ConnectivityManager) context     
  3.                 .getSystemService(Context.CONNECTIVITY_SERVICE);     
  4.         TelephonyManager mgrTel = (TelephonyManager) context     
  5.                 .getSystemService(Context.TELEPHONY_SERVICE);     
  6.         return ((mgrConn.getActiveNetworkInfo() != null && mgrConn     
  7.                 .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel     
  8.                 .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);     
  9.     }   


 

五、判断是否是3G网络

[java]  view plain  copy
  1. public static boolean is3rd(Context context) {     
  2.         ConnectivityManager cm = (ConnectivityManager) context     
  3.                 .getSystemService(Context.CONNECTIVITY_SERVICE);     
  4.         NetworkInfo networkINfo = cm.getActiveNetworkInfo();     
  5.         if (networkINfo != null     
  6.                 && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {     
  7.             return true;     
  8.         }     
  9.         return false;     
  10.     }    


 

六、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。

[java]  view plain  copy
  1. public static boolean isWifi(Context context) {     
  2.             ConnectivityManager cm = (ConnectivityManager) context     
  3.                     .getSystemService(Context.CONNECTIVITY_SERVICE);     
  4.             NetworkInfo networkINfo = cm.getActiveNetworkInfo();     
  5.             if (networkINfo != null     
  6.                     && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {     
  7.                 return true;     
  8.             }     
  9.             return false;     
  10.         }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值