工具类总结---(七)---之通用工具

       这里所谓的通用工具,就是表示经常会用到的方法,比如说判断网络的状态,判断sd是否存在,弹出toast等等。

    

package cgjr.com.cgjr.utils;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;

import cgjr.com.cgjr.CGApplication;
import cgjr.com.cgjr.data.ErrorMsg;

/**
 * Created by Administrator on 2016/4/13.
 */
public class UtilityUtils {

    /**
     * 判断是否有网络连接
     *
     * @param context
     * @return
     */
    public static boolean isNewWorkConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager =
                    (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if (mConnectivityManager != null) {
                NetworkInfo mobileInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                NetworkInfo wifiInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                if ((mobileInfo == null || !mobileInfo.isAvailable()) && (wifiInfo == null || !wifiInfo.isAvailable())) {
                    return false;
                }
            } else {
                return false;
            }
        }
        return true;
    }

    public static void makeText_short(Context context, String msg) {
        if (!TextUtils.isEmpty(msg) && context != null) {
            Toast.makeText(context, TextUtils.isEmpty(msg) ? "" : msg, Toast.LENGTH_LONG).show();
        }
    }

    /**
     * @param activity 支持页面
     * @param obj      解析数据图像,解析为Json对象,以便进行解析操作
     * @return
     * @throws JSONException
     */
    public static JSONObject parseObj(Context activity, Object obj) throws JSONException {
        return new JSONObject(obj.toString());
    }

    /**
     * 判断SD卡是否存在
     *
     * @return
     */
    public static boolean isHaveSD() {
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 保存错误信息到本地数据库中
     *
     * @param errorMsg 错误信息
     */
    public static void saveExceptionInfo(Throwable errorMsg) {
        LogUtils.i("saveExceptionInfo", "保存错误日志:" + getErrorInfo(errorMsg));
        ErrorMsg error = new ErrorMsg(CGApplication.getApp(), getErrorInfo(errorMsg), Log.ERROR);
        error.save();
    }

    /**
     * 获取错误信息
     *
     * @param arg1
     * @return
     */
    public static String getErrorInfo(Throwable arg1) {
        Writer writer = new StringWriter();
        PrintWriter pw = new PrintWriter(writer);
        arg1.printStackTrace(pw);
        pw.close();
        String error = writer.toString();
        return error;
    }



}

     上面的保存错误的日志,到本地数据库,则涉及到操作本地数据库的问题。

 

    

package cgjr.com.cgjr.data;

import android.os.Build;
import android.util.Log;

import org.litepal.crud.DataSupport;

import java.util.Date;

import cgjr.com.cgjr.CGApplication;
import cgjr.com.cgjr.constants.Constants;
import cgjr.com.cgjr.utils.DateUtil;

/**
 * 程序错误类
 * Created by Administrator on 2016/4/13.
 */
public class ErrorMsg extends DataSupport {
    public ErrorMsg() {
    }

    public ErrorMsg(CGApplication cgApp) {
        setNet(cgApp.getNetWorkStatus());
        setuId(cgApp.getUserId());
    }


    public ErrorMsg(CGApplication cgApp, String msg, int log) {
        setNet(cgApp.getNetWorkStatus());
        setuId(cgApp.getUserId());
        setMsg(msg);
        setLog(log);
    }

    /**
     * Priority 日志级别
     */
    private int log = Log.INFO;

    /**
     * 用户ID
     */
    private String uId;


    /**
     * netstatus; //网络可用状态,0 表示无网络可用,1 表示 wifi网络可用  2 表示 手机网络可用
     */
    private int net = 0;

    /**
     * 手机型号
     */
    private String mt = Build.MODEL;

    /**
     * 系统 版本号
     */
    private String sv = Build.VERSION.RELEASE;

    /**
     * os
     */
    private String os = "android";

    /**
     * app version
     */
    private String av = Constants.version_;

    /**
     * 时间
     */
    private String time = DateUtil.formatDatetoString(new Date(), DateUtil.ISO8601_DATETIME_PATTERN);

    /**
     * 错误内容
     */
    private String msg;


    public int getLog() {
        return log;
    }

    public void setLog(int log) {
        this.log = log;
    }

    public String getuId() {
        return uId;
    }

    public void setuId(String uId) {
        this.uId = uId;
    }

    public int getNet() {
        return net;
    }

    public void setNet(int net) {
        this.net = net;
    }

    public String getMt() {
        return mt;
    }

    public void setMt(String mt) {
        this.mt = mt;
    }

    public String getSv() {
        return sv;
    }

    public void setSv(String sv) {
        this.sv = sv;
    }

    public String getOs() {
        return os;
    }

    public void setOs(String os) {
        this.os = os;
    }

    public String getAv() {
        return av;
    }

    public void setAv(String av) {
        this.av = av;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

}

  

  

原文地址:https://www.cnblogs.com/beigongfengchen/p/5454559.html