Android中判断网络连接是否可用

一、判断网络连接是否可用
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) { } else {       
//如果仅仅是用来判断网络连接      
//则可以使用 cm.getActiveNetworkInfo().isAvailable();
NetworkInfo[] info = cm.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}


下面的不仅可以判断,如果没有开启网络的话,就进入到网络开启那个界面,具体代码如下:
protected boolean CheckNetwork() {
// TODO Auto-generated method stub
boolean flag=false;
ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(cwjManager.getActiveNetworkInfo()!=null)
flag=cwjManager.getActiveNetworkInfo().isAvailable();
if(!flag){
Builder b=new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网路连接");
b.setPositiveButton("确定",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent mIntent=new Intent("/");
ComponentName comp=new ComponentName("com.android.settings","com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivity(mIntent);
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub dialog.cancel();
}
}).create(); b.show();
}
return flag;
}

用的时候可以这样用:
if(!CheckNetwork()) return;

二、判断GPS是否打开
public static boolean isGpsEnabled(Context context) {
LocationManager lm = ((LocationManager) context .getSystemService(Context.LOCATION_SERVICE));
List<String> accessibleProviders = lm.getProviders(true); return accessibleProviders != null && accessibleProviders.size() > 0;
}

下边这小段代码是用来判断手机的GPS服务是否为开启状态.如果是就提示用户GPS已经打开.

如果现在GPS 处于关闭状态,那么给用户一个提示, 然后打开GPS设置界面,让用户更改GPS为启动状态.
private void openGPSSettings(){
LocationManager alm =(LocationManager)this.getSystemService( Context.LOCATION_SERVICE );
if( alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER ) ){
Toast.makeText( this, “GPS is already on”, Toast.LENGTH_SHORT ).show();
}else{
Toast.makeText( this, “Please turn on GPS”, Toast.LENGTH_SHORT ).show();
Intent myIntent = new Intent( Settings.ACTION_SECURITY_SETTINGS );startActivity(myIntent);
}
}

初始化GPS设置
private void initGPS(){
LocationManager locationManager=(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
//判断GPS模块是否开启,如果没有则开启if(!locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)){
Toast.makeText(this, "GPS is not open,Please open it!", Toast.LENGTH_SHORT).show();
Intent intent=new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent,0);
}else {
Toast.makeText(this, "GPS is ready", Toast.LENGTH_SHORT);
}
}

三、判断WIFI是否打开
public static boolean isWifiEnabled(Context context) {
ConnectivityManager mgrConn = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); TelephonyManager mgrTel = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE);
return ((mgrConn.getActiveNetworkInfo() != null && mgrConn .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
}


四、判断是否是3G网络
public static boolean is3rd(Context context) {
ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkINfo = cm.getActiveNetworkInfo();
if (networkINfo != null && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
return false;
}

五、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。
public static boolean isWifi(Context context) {
ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkINfo = cm.getActiveNetworkInfo();
if (networkINfo != null && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} return false;
}


参考地址:

Android 监控网络状态

http://www.2cto.com/kf/201111/110226.html


更多相关文章

  1. android 获取 imei号码
  2. android 获取 imei号码
  3. android 中查看当前是否联网
  4. Andriod开发之浏览器开发(WebView)
  5. android 获取 imei号码
  6. android 获取 imei号码
  7. Android应用程序调用系统解锁页面
  8. 判断 android 是否成功联网
  9. 判断Android设备是否连接网络

随机推荐

  1. 安卓7.0及以上用户证书导入的问题
  2. android 7.0 有关wifi热点设置信息
  3. Android设计模式系列--适配器模式
  4. Android(安卓)屏幕旋转
  5. Android(安卓)GLSurfaceView详解
  6. Android:保存图片到Sqlite数据库
  7. Android程序设计基础--总结
  8. Android(安卓)WebView的简单使用
  9. Android(安卓)external.db和internal.db
  10. Android(安卓)网络框架学习之OKHttp