Android工具类整合
Posted 刘德利_Android
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android工具类整合相关的知识,希望对你有一定的参考价值。
android-JSONUtil工具类
常用的Json工具类,包含Json转换成实体、实体转json字符串、list集合转换成json、数组转换成json
public class JSONUtil
private static final String TAG = JSONUtil.class.getSimpleName();
private JSONUtil()
private static Gson gson = new Gson();
/**
* 传入一个头部,获取头部管控中的所有String信息
* @return
*/
public static String getHeadContext(String jsonData, String head)
String jsonObjectString = null;
try
JSONObject jsonObject = new JSONObject(jsonData);
jsonObjectString = jsonObject.get(head).toString();
// LogUtil.d(TAG, "getHeadContext 只去头部header的数据信息:" + jsonObjectString);
catch (Exception e)
e.printStackTrace();
return jsonObjectString;
/**
* 将一个对象转换成一个Json字符串
* @param t
* @return
*/
public static <T> String objectToJson(T t)
if (t instanceof String)
return t.toString();
else
return gson.toJson(t);
/**
* 将Json字符串转换成对应对象
* @param jsonString Json字符串
* @param clazz 对应字节码文件.class
* @return
*/
@SuppressWarnings("unchecked")
public static<T> T jsonToObject(String jsonString, Class<T> clazz)
if (clazz == String.class)
return (T) jsonString;
else
return (T)gson.fromJson(jsonString, clazz);
/**
* 将List集合转换为json字符串
* @param list List集合
* @return
*/
public static<T> String listToJson(List<T> list)
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = null;
try
for (int i = 0; i < list.size(); i++)
jsonObject = new JSONObject(objectToJson(list.get(i)));
jsonArray.put(jsonObject);
catch (JSONException e)
e.printStackTrace();
finally
if (jsonObject != null)
jsonObject = null;
return jsonArray.toString();
/**
* 将数组转换成json字符串
* @param array 数组
* @return
*/
public static<T> String arrayToJson(T[] array)
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = null;
try
for (int i = 0; i < array.length; i++)
jsonObject = new JSONObject(objectToJson(array[i]));
jsonArray.put(jsonObject);
catch (JSONException e)
e.printStackTrace();
finally
if (jsonObject != null)
jsonObject = null;
return jsonArray.toString();
/**
* 获取json字符串中的值
* @param json json字符串
* @param key 键值
* @param clazz 所取数据类型,例如:Integer.class,String.class,Double.class,JSONObject.class
* @return 存在则返回正确值,不存在返回null
*/
public static<T> T getJsonObjectValue(String json, String key, Class<T> clazz)
try
return getJsonObjectValue(new JSONObject(json), key, clazz);
catch (JSONException e)
e.printStackTrace();
return null;
/**
* 获取jsonObject对象中的值
* @param jsonObject jsonObject对象
* @param key 键值
* @param clazz 所取数据类型,例如:Integer.class,String.class,Double.class,JSONObject.class
* @return 存在则返回正确值,不存在返回null
*/
@SuppressWarnings("unchecked")
public static<T> T getJsonObjectValue(JSONObject jsonObject, String key, Class<T> clazz)
T t = null;
try
if (clazz == Integer.class)
t = (T) Integer.valueOf(jsonObject.getInt(key));
else if(clazz == Boolean.class)
t = (T) Boolean.valueOf(jsonObject.getBoolean(key));
else if(clazz == String.class)
t = (T) String.valueOf(jsonObject.getString(key));
else if(clazz == Double.class)
t = (T) Double.valueOf(jsonObject.getDouble(key));
else if(clazz == JSONObject.class)
t = (T) jsonObject.getJSONObject(key);
else if(clazz == JSONArray.class)
t = (T) jsonObject.getJSONArray(key);
else if(clazz == Long.class)
t = (T) Long.valueOf(jsonObject.getLong(key));
catch (JSONException e)
e.printStackTrace();
return t;
/**
* json字符串转换为ContentValues
* @param json json字符串
* @return
*/
@SuppressWarnings("rawtypes")
public static ContentValues jsonToContentValues(String json)
ContentValues contentValues = new ContentValues();
try
JSONObject jsonObject = new JSONObject(json);
Iterator iterator = jsonObject.keys();
String key;
Object value;
while (iterator.hasNext())
key = iterator.next().toString();
value = jsonObject.get(key);
String valueString = value.toString();
if (value instanceof String)
contentValues.put(key, valueString);
else if(value instanceof Integer)
contentValues.put(key, Integer.valueOf(valueString));
else if(value instanceof Long)
contentValues.put(key, Long.valueOf(valueString));
else if(value instanceof Double)
contentValues.put(key, Double.valueOf(valueString));
else if(value instanceof Float)
contentValues.put(key, Float.valueOf(valueString));
else if(value instanceof Boolean)
contentValues.put(key, Boolean.valueOf(valueString));
catch (JSONException e)
e.printStackTrace();
throw new Error("Json字符串不合法:" + json);
return contentValues;
Android-LogUtil工具类
Log日志级别打印相关工具类
public class LogUtil
private LogUtil()
/**
* 打印的信息日志信息
*/
private final static String INFO = "☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻☻: ";
/**
* 打印的错误日志信息
*/
private final static String ERROR = "✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖: ";
/**
* 打印的调试日志信息
*/
private final static String DEBUG = "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠: ";
/**
* 打印的全面日志信息
*/
private final static String VERBOSE = "▂▂▂▃▃▄▄▅▅▆▆▆▇▇: ";
/**
* 打印的警告日志信息
*/
private final static String WARN = "!!!!!!!!!!!!!!!!!!!!!!!!!!: ";
/**
* 打印information日志
* @param tag 标签
* @param msg 日志信息
*/
public static void i(String tag,String msg)
Log.i(tag, INFO + msg);
/**
* 打印information日志
* @param tag 标签
* @param msg 日志信息
* @param throwable 异常
*/
public static void i(String tag, String msg, Throwable throwable)
Log.i(tag, INFO + msg, throwable);
/**
* 打印verbose日志
* @param tag 标签
* @param msg 日志信息
*/
public static void v(String tag, String msg)
Log.v(tag, VERBOSE + msg);
/**
* 打印verbose日志
* @param tag 标签
* @param msg 日志信息
* @param throwable 异常
*/
public static void v(String tag, String msg, Throwable throwable)
Log.v(tag, VERBOSE + msg, throwable);
/**
* 打印debug信息
* @param tag 标签信息
* @param msg 日志信息
*/
public static void d(String tag, String msg)
Log.d(tag, DEBUG + msg);
/**
* 打印debug日志
* @param tag 标签信息
* @param msg 日志信息
* @param throwable 异常
*/
public static void d(String tag, String msg, Throwable throwable)
Log.d(tag, DEBUG + msg, throwable);
/**
* 打印warn日志
* @param tag 标签信息
* @param msg 日志信息
*/
public static void w(String tag, String msg)
Log.w(tag, WARN + msg);
/**
* 打印warn日志
* @param tag 标签信息
* @param msg 日志信息
* @param throwable 异常
*/
public static void w(String tag, String msg, Throwable throwable)
Log.w(tag, WARN + msg, throwable);
/**
* 打印error日志
* @param tag
* @param msg 标签
*/
public static void e(String tag, String msg)
Log.e(tag, ERROR + msg);
/**
* 打印error日志
* @param tag 标签
* @param msg 日志信息
* @param throwable 异常
*/
public static void e(String tag, String msg, Throwable throwable)
Log.e(tag, ERROR + msg, throwable);
/**
* 吐司提示
* @param msg
*/
public static void toast(Context mContext, String msg)
Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
/**
* 吐司提示 long类型
* @param msg
*/
public static void toastL(Context mContext, String msg)
Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
/**
* 吐司提示 自定义时间类型
* @param msg
*/
public static void toastD(Context mContext, String msg, int duration)
Toast.makeText(mContext, msg, duration).show();
Android-MD5Util工具类
MD5 字符串加密 ,文件加密相关工具类
public class MD5Util
private static final String TAG = "MD5Util";
/**
* 默认的密码字符串组合,用来将字节转换成 16 进制表示的字符,apache校验下载的文件的正确性用的就是默认的这个组合
*/
protected static char hexDigits[] = '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' ;
protected static MessageDigest messagedigest = null;
static
try
messagedigest = MessageDigest.getInstance("MD5");
catch (NoSuchAlgorithmException nsaex)
ELog.e(TAG, MD5Util.class.getName()
+ "init failed ,MessageDigest un support MD5Util。");
nsaex.printStackTrace();
/**
* 生成字符串的md5校验值
* @param s
* @return
*/
public static String getMD5String(String s)
return getMD5String(s.getBytes());
/**
* 生成字符串的md5校验值 16位
* @param s
* @return
*/
public static String getMD5String16(String s)
return getMD5String(s.getBytes()).substring(8, 24);
/**
* 判断字符串的md5校验码是否与一个已知的md5码相匹配
* @param password 要校验的字符串
* @param md5PwdStr 已知的md5校验码
* @return
*/
public static boolean checkPassword(String password, String md5PwdStr)
String s = getMD5String(password);
return s.equals(md5PwdStr);
/**
* 生成文件的md5校验值
* @param file
* @return
* @throws IOException
*/
public static String getFileMD5String(File file) throws IOException
InputStream fis;
fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int numRead = 0;
while ((numRead = fis.read(buffer)) > 0)
messagedigest.update(buffer, 0, numRead);
fis.close();
return bufferToHex(messagedigest.digest());
public static String getMD5String(byte[] bytes)
messagedigest.update(bytes);
return bufferToHex(messagedigest.digest());
private static String bufferToHex(byte bytes[])
return bufferToHex(bytes, 0, bytes.length);
private static String bufferToHex(byte bytes[], int m, int n)
StringBuffer stringbuffer = new StringBuffer(2 * n);
int k = m + n;
for (int l = m; l < k; l++)
appendHexPair(bytes[l], stringbuffer);
return stringbuffer.toString();
private static void appendHexPair(byte bt, StringBuffer stringbuffer)
char c0 = hexDigits[(bt & 0xf0) >> 4]; // 取字节中高 4 位的数字转换, >>> 为逻辑右移,将符号位一起右移,此处未发现两种符号有何不同
char c1 = hexDigits[bt & 0xf]; // 取字节中低 4 位的数字转换
stringbuffer.append(c0);
stringbuffer.append(c1);
/**
* 自测方法
* @param args
*/
public static void main(String[] args)
System.out.println(getMD5String("test"));
Android-MeasureUtil工具类
常用测量相关的工具类:
public class MeasureUtil
private MeasureUtil()
/**
* 获取控件的测量高度
* @param view 控件
* @return 返回测量高度(MeasuredHeight)
*/
public static int getMeasuredHeight(View view)
if (view == null)
throw new IllegalArgumentException("view is null");
view.measure(0, 0);
return view.getMeasuredHeight();
/**
* 控件的高度
* @param view 控件View
* @return 返回控件的高度
*/
public static int getHeight(View view)
if(view == null)
throw new IllegalArgumentException("view is null");
view.measure(0, 0);
return view.getHeight();
/**
* 获取控件的测量宽度
* @param view 控件
* @return 返回控件的测量宽度
*/
public static int getMeasuredWidth(View view)
if(view == null)
throw new IllegalArgumentException("view is null");
view.measure(0, 0);
return view.getMeasuredWidth();
/**
* 获取控件的宽度
* @param view 控件
* @return 返回控件的宽度
*/
public static int getWidth(View view)
if(view == null)
throw new IllegalArgumentException("view is null");
view.measure(0, 0);
return view.getWidth();
/**
* 设置高度
* @param view 控件
* @param height 高度
*/
public static void setHeight(View view, int height)
if (view == null || view.getLayoutParams() == null)
throw new IllegalArgumentException("View LayoutParams is null");
ViewGroup.LayoutParams params = view.getLayoutParams();
params.height = height;
view.setLayoutParams(params);
/**
* 设置View的宽度
* @param view view
* @param width 宽度
*/
public static void setWidth(View view, int width)
if(view == null || view.getLayoutParams() == null)
throw new IllegalArgumentException("View LayoutParams is null");
ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = width;
view.setLayoutParams(params);
/**
* 设置ListView的实际高度
* @param listView ListView控件
*/
public static void setListHeight(ListView listView)
if (listView == null)
throw new IllegalArgumentException("ListView is null");
Adapter adapter = listView.getAdapter();
if (adapter == null)
return;
int totalHeight = 0;
int size = adapter.getCount();
for (int i = 0; i < size; i++)
View listItem = adapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (size - 1));
LogUtil.d("MeasureUtil", "listview-height--" + params.height);
listView.setLayoutParams(params);
/**
* 设置GridView的高度,
* @param context 应用程序上下文
* @param gv GridView控件
* @param n 行数
* @param m 列数
*/
public static void setGridViewHeight(Context context, GridView gv, int n, int m)
if(gv == null)
throw new IllegalArgumentException("GridView is null");
Adapter adapter = gv.getAdapter();
if (adapter == null)
return;
int totalHeight = 0;
int size = adapter.getCount();
for (int i = 0; i < size; i++)
View listItem = adapter.getView(i, null, gv);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight() + ScreenUtil.dp2px(context, m);
ViewGroup.LayoutParams params = gv.getLayoutParams();
params.height = totalHeight + gv.getPaddingTop() + gv.getPaddingBottom() + 2;
LogUtil.d("MeasureUtil", "gridview-height--" + params.height);
gv.setLayoutParams(params);
Android-NetworkUtils工具类
网络类型,网络状态,网络制式,等相关工具类
public final class NetworkUtils
private NetworkUtils()
throw new AssertionError();
/**
* 未找到合适匹配网络类型
*/
public static final int TYPE_NO = 0;
/**
* 中国移动CMNET网络
* 中国移动GPRS接入方式之一, 主要为PC、笔记本电脑、PDA设立
*/
public static final int TYPE_MOBILE_CMNET = 1;
/**
* 中国移动CMWAP网络
* 中国移动GPRS接入方式之一,主要为手机WAP上网而设立
*/
public static final int TYPE_MOBILE_CMWAP = 2;
/**
* 中国联通UNIWAP网络
* 中国联通划分GPRS接入方式之一, 主要为手机WAP上网而设立
*/
public static final int TYPE_MOBILE_UNIWAP = 3;
/**
* 中国联通UNINET网络
* 中国联通划分GPRS接入方式之一, 主要为PC、笔记本电脑、PDA设立
*/
public static final int TYPE_MOBILE_UNINET = 6;
/**
* 中国联通3GWAP网络
*/
public static final int TYPE_MOBILE_3GWAP = 4;
// 中国联通3HNET网络
public static final int TYPE_MOBLIE_3GNET = 5;
/**
* 中国电信CTWAP网络
*/
public static final int TYPE_MOBILE_CTWAP = 7;
/**
* 中国电信CTNET网络
*/
public static final int TYPE_MOBILE_CTNET = 8;
/**
* WIFI网络
*/
public static final int TYPE_WIFI = 10;
/**
* 网络类型 - 无连接
*/
public static final int NETWORK_TYPE_NO_CONNECTION = -100000;
/**
* 连接模式WIFI网
*/
public static final String NETWORK_TYPE_WIFI = "WIFI";
/**
* 连接模式快速网
*/
public static final String NETWORK_TYPE_FAST = "FAST";
/**
* 连接模式慢速网
*/
public static final String NETWORK_TYPE_SLOW = "SLOW";
/**
* 连接模式wap网
*/
public static final String NETWORK_TYPE_WAP = "WAP";
/**
* 连接模式unknow
*/
public static final String NETWORK_TYPE_UNKNOWN = "UNKNOWN";
/**
* 无连接
*/
public static final String NETWORK_TYPE_DISCONNECT = "DISCONNECT";
/**
* 获取当前手机连接的网络类型
*
* @param context 上下文
* @return int 网络类型
*/
public static int getNetworkState(Context context)
int returnValue = TYPE_NO;
// 获取ConnectivityManager对象
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// 获得当前网络信息
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable())
// 获取网络类型
int currentNetWork = networkInfo.getType();
// 手机网络类型
if (currentNetWork == ConnectivityManager.TYPE_MOBILE)
if (networkInfo.getExtraInfo() != null)
if (networkInfo.getExtraInfo().equals("cmnet"))
returnValue = TYPE_MOBILE_CMNET;
if (networkInfo.getExtraInfo().equals("cmwap"))
returnValue = TYPE_MOBILE_CMWAP;
if (networkInfo.getExtraInfo().equals("uniwap"))
returnValue = TYPE_MOBILE_UNIWAP;
if (networkInfo.getExtraInfo().equals("3gwap"))
returnValue = TYPE_MOBILE_3GWAP;
if (networkInfo.getExtraInfo().equals("3gnet"))
returnValue = TYPE_MOBLIE_3GNET;
if (networkInfo.getExtraInfo().equals("uninet"))
returnValue = TYPE_MOBILE_UNINET;
if (networkInfo.getExtraInfo().equals("ctwap"))
returnValue = TYPE_MOBILE_CTWAP;
if (networkInfo.getExtraInfo().equals("ctnet"))
returnValue = TYPE_MOBILE_CTNET;
// WIFI网络类型
else if (currentNetWork == ConnectivityManager.TYPE_WIFI)
returnValue = TYPE_WIFI;
return returnValue;
/**
* 判断网络是否连接
*
* @param context 上下文
* @return boolean 网络连接状态
*/
public static boolean isNetworkConnected(Context context)
if (context != null)
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
// 获取连接对象
if (null != info && info.isConnected())
return info.getState() == State.CONNECTED;
return false;
/**
* 打开网络设置界面
*
* @param activity Activity
*/
public static void openNetSetting(Activity activity)
Intent intent = new Intent("/");
ComponentName cm =
new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
intent.setComponent(cm);
intent.setAction("android.intent.action.VIEW");
activity.startActivityForResult(intent, 0);
/**
* 是否是用手机网络连接
*
* @param context 上下文
* @return 结果
*/
public static boolean isFlowConnect(Context context)
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (null == cm || null == cm.getActiveNetworkInfo())
return false;
return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
/**
* 是否是wifi连接
*
* @param context app的context
* @return true:是wifi连接
*/
public static boolean isWifiConnect(Context context)
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (null == cm || null == cm.getActiveNetworkInfo())
return false;
return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
/**
* 获取网络连接类型
*
* @param context context
* @return NetworkType
*/
public static int getNetworkType(Context context)
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (null == cm || null == cm.getActiveNetworkInfo())
return TYPE_NO;
return cm.getActiveNetworkInfo().getType();
/**
* 获取网络连接类型名称
*
* @param context context
* @return NetworkTypeName
*/
public static String getNetworkTypeName(Context context)
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
String type = NETWORK_TYPE_DISCONNECT;
if (cm == null || info == null)
return type;
if (info.isConnected())
String typeName = info.getTypeName();
if ("WIFI".equalsIgnoreCase(typeName))
type = NETWORK_TYPE_WIFI;
else if ("MOBILE".equalsIgnoreCase(typeName))
String proxyHost = android.net.Proxy.getDefaultHost();
if (StringUtil.isEmpty(proxyHost))
type = isFastMobileNetwork(context) ? NETWORK_TYPE_FAST : NETWORK_TYPE_SLOW;
else
type = NETWORK_TYPE_WAP;
else
type = NETWORK_TYPE_UNKNOWN;
return type;
/**
* Whether is fast mobile network
*
* @param context context
* @return FastMobileNetwork
*/
private static boolean isFastMobileNetwork(Context context)
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(
Context.TELEPHONY_SERVICE);
if (telephonyManager == null)
return false;
switch (telephonyManager.getNetworkType())
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EHRPD:
case TelephonyManager.NETWORK_TYPE_EVDO_B:
case TelephonyManager.NETWORK_TYPE_HSPAP:
case TelephonyManager.NETWORK_TYPE_LTE:
return true;
default:
return false;
/**
* 获取当前网络的状态
*
* @param context 上下文
* @return 当前网络的状态。具体类型可参照NetworkInfo.State.CONNECTED、NetworkInfo.State.CONNECTED.DISCONNECTED等字段。
* 当前没有网络连接时返回null
*/
public static State getCurrentNetworkState(Context context)
NetworkInfo info = ((ConnectivityManager) context.getSystemService(
Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (null == info)
return null;
return info.getState();
/**
* 获取当前网络的类型
*
* @param context 上下文
* @return 当前网络的类型。具体类型可参照ConnectivityManager中的TYPE_BLUETOOTH、TYPE_MOBILE、TYPE_WIFI等字段。
* 当前没有网络连接时返回NetworkUtils.NETWORK_TYPE_NO_CONNECTION
*/
public static int getCurrentNetworkType(Context context)
NetworkInfo info = ((ConnectivityManager) context.getSystemService(
Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
return info != null ? info.getType() : NETWORK_TYPE_NO_CONNECTION;
/**
* 获取当前网络的具体类型
*
* @param context 上下文
* @return 当前网络的具体类型。具体类型可参照TelephonyManager中的NETWORK_TYPE_1xRTT、NETWORK_TYPE_CDMA等字段。
* 当前没有网络连接时返回NetworkUtils.NETWORK_TYPE_NO_CONNECTION
*/
public static int getCurrentNetworkSubtype(Context context)
NetworkInfo info = ((ConnectivityManager) context.getSystemService(
Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
return info != null ? info.getSubtype() : NETWORK_TYPE_NO_CONNECTION;
/**
* 判断当前网络是否已经连接
*
* @param context 上下文
* @return 当前网络是否已经连接。false:尚未连接
*/
public static boolean isConnectedByState(Context context)
return getCurrentNetworkState(context) == State.CONNECTED;
/**
* 判断当前网络是否正在连接
*
* @param context 上下文
* @return 当前网络是否正在连接
*/
public static boolean isConnectingByState(Context context)
return getCurrentNetworkState(context) == State.CONNECTING;
/**
* 判断当前网络是否已经断开
*
* @param context 上下文
* @return 当前网络是否已经断开
*/
public static boolean isDisconnectedByState(Context context)
return getCurrentNetworkState(context) == State.DISCONNECTED;
/**
* 判断当前网络是否正在断开
*
* @param context 上下文
* @return 当前网络是否正在断开
*/
public static boolean isDisconnectingByState(Context context)
return getCurrentNetworkState(context) == State.DISCONNECTING;
/**
* 判断当前网络是否已经暂停
*
* @param context 上下文
* @return 当前网络是否已经暂停
*/
public static boolean isSuspendedByState(Context context)
return getCurrentNetworkState(context) == State.SUSPENDED;
/**
* 判断当前网络是否处于未知状态中
*
* @param context 上下文
* @return 当前网络是否处于未知状态中
*/
public static boolean isUnknownByState(Context context)
return getCurrentNetworkState(context) == State.UNKNOWN;
/**
* 判断当前网络的类型是否是蓝牙
*
* @param context 上下文
* @return 当前网络的类型是否是蓝牙。false:当前没有网络连接或者网络类型不是蓝牙
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
public static boolean isBluetoothByType(Context context)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2)
return false;
else
return getCurrentNetworkType(context) == ConnectivityManager.TYPE_BLUETOOTH;
/**
* 判断当前网络的类型是否是虚拟网络
*
* @param context 上下文
* @return 当前网络的类型是否是虚拟网络。false:当前没有网络连接或者网络类型不是虚拟网络
*/
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static boolean isDummyByType(Context context)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2)
return false;
else
以上是关于Android工具类整合的主要内容,如果未能解决你的问题,请参考以下文章
spring整合mybatis多数据源下部分配置(下划线转驼峰)失效问题
使用 SpringBoot 整合 MyBatis 开发 开启驼峰映射功能