网络连接工具类

public class NetUtil {

	// APN:WAP
	/**
	 * 检查当前的网络
	 */
	public static boolean checkNet(Context context) {
		// 判断当前用户手机是否使用WIFI通信
		boolean isWIFI = isWIFIConnection(context);
		// 判断当前用户手机是否使用APN通信
		boolean isAPN = isAPNConnection(context);
		// 否——提示用户——界面跳转到网络设置
		if (isAPN == false && isWIFI == false) {
			return false;
		}

		if (isAPN) {
			// 是接入点
			// IP是10.0.0.172 端口是80 从手机的配置信息中读取
			// 有一部分手机:010.000.000.172
			setAPN(context);
		}

		return true;
	}
	/**
	 * 从手机的配置信息中读取
	 */
	private static void setAPN(Context context) {
		Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");

		ContentResolver contentResolver = context.getContentResolver();
		Cursor query = contentResolver.query(PREFERRED_APN_URI, null, null, null, null);//获取到当前正在连接的APN信息
		if(query!=null&&query.moveToNext())
		{
			//设置ip和端口的信息
			GlobalParams.IP=query.getString(query.getColumnIndex("proxy"));
			GlobalParams.PORT=query.getInt(query.getColumnIndex("port"));
		}

	}

	/**
	 * 判断WIFI是否连接
	 *
	 * @return
	 */
	private static boolean isWIFIConnection(Context context) {
		ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
		if (networkInfo != null)
			return networkInfo.isConnected();
		return false;
	}

	/**
	 * 判断APN是否连接
	 *
	 * @return
	 */
	private static boolean isAPNConnection(Context context) {
		ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
		if (networkInfo != null)
			return networkInfo.isConnected();
		return false;
	}
}

时间: 2024-10-09 17:59:17

网络连接工具类的相关文章

NetUtils网络连接工具类

import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class NetUtils { /** * 获得网络连接是否可用 * @para

android网络连接工具类

public class NetUtil { /** * 检查当前的网络 */ public static boolean checkNet(Context context) { // 判断当前用户手机是否使用WIFI通信 boolean isWIFI = isWIFIConnection(context); // 判断当前用户手机是否使用APN通信 boolean isAPN = isAPNConnection(context); // 否--提示用户--界面跳转到网络设置 if (isAPN

捕获异常、存sd卡、封装请求头体、加密map值、网络工具类、生成Json、Https协议、传log日志到服务器、app崩溃友好重启

点击打开链接,免积分下载 在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器.然而在公司android开发中不集成这些SDK,那应该怎么实现这样的功能呢?下面让我们来看下如何使用UncaughtExceptionHandler来捕获异常. 在Android开发中,常常会出现uncheched Exception 导致程序的crash,为了提供良

Apache HttpClient访问网络工具类

1 package com.ztravel.utils; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org

数据库连接工具类 数据库连接工具类——仅仅获得连接对象 ConnDB.java

package com.util; import java.sql.Connection; import java.sql.DriverManager; /** * 数据库连接工具类——仅仅获得连接对象 * */ public class ConnDB { private static Connection conn = null; private static final String DRIVER_NAME = "com.mysql.jdbc.Driver"; private st

ios中封装网络请求类

ios中封装网络请求类 #import "JSNetWork.h" //asiHttpRequest #import "ASIFormDataRequest.h" //xml 的解析 #import "UseXmlParser.h" //判断是否联网 #import "Reachability.h" //sbJson,判断json的解析 #import "JSON.h" @implementation JS

block传值以及利用block封装一个网络请求类

1.block在俩个UIViewController间传值 最近刚学了几招block 的高级用法,其实就是利用block语法在俩个UIViewController之间传值,在这里分享给初学者,同时也方便我自己理解.我们知道UINavigationController类管理UIViewController的时候,利用的是"栈"的思想,在这里不做过多解释,切入正题,假设我们现在有俩个UIViewController,viewC1和viewC2,viewC1比viewC2先进入到UINavi

数据库连接工具类——包含取得连接和关闭资源 ConnUtil.java

package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @className: ConnUtil.java * @classDescription: 数据库连接工具类——包含取得连接和关闭资源 * @fun

一个简单网络服务器类的实现

网络服务器,顾名思义是一个可以接受连接的host,我们要实现的网络服务器类是一个 1.能够实现多个连接 2.仅仅通过继承或实现网络服务器类(或接口)的处理就能实现不同的连接功能 3.当服务器关闭时,已有建立的私有连接不被中断,但服务器不在接受新的连接 针对以上功能我们分解一下要实现的模块: 1.多线程实现多个连接,当serverSocket accept到一个连接请求时,开启一个独立的线程 2.实现这个,要求上面新建线程能被网络服务器锁管理 3.服务器不接受其他连接,可以用线程中断做,私有连接能