Android常用工具類(一)

小編整理了一些在Android上常用的工具類;這些工具類在開發app的工程中,有些是必不可少的。

package com.example.administrator.componentdemo;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.DisplayMetrics;
import java.io.File;
import java.io.FileFilter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.regex.Pattern;
/**
 *   Android常用的工具類
 *
 */
public class Utils {

    /**
     * 判斷網絡是否已經連接
     * @param context 上下文
     * @return true 已經連接網絡, false 網絡連接失效
     * */
    public static boolean isNetworkAvailable(Context context){
        try{
            ConnectivityManager cm = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if(cm != null){
                NetworkInfo ni = cm.getActiveNetworkInfo();
                if(ni!=null && ni.isConnected()){
                    if(ni.getState() == NetworkInfo.State.CONNECTED){
                        return true;
                    }
                }
            }
        } catch (Exception e){
            return false;
        }
        return false;
    }


    /**
     * 判斷當前網絡是否是WIFI
     *
     */
    public static boolean isWIFI(Context context){
        try{
            ConnectivityManager cm = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if(cm != null){
                NetworkInfo ni = cm.getActiveNetworkInfo();
                if(ni!=null && ni.getType() == ConnectivityManager.TYPE_WIFI){
                    return true;
                }
            }
        } catch (Exception e){
            return false;
        }
        return false;
    }

    /**
     * 判斷當前網絡是否是GPRS
     * */
    public static boolean is3G(Context context){
        try{
            ConnectivityManager cm =
                    (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if(cm != null){
                NetworkInfo ni = cm.getActiveNetworkInfo();
                if(ni!=null && ni.getType() == ConnectivityManager.TYPE_MOBILE){
                    return true;
                }
            }
        } catch (Exception e){

        }
        return false;
    }

    /**
     * 獲取手機分辨率--W
     * */
    public static int getPhoneHW(Context context){
        DisplayMetrics dm = new DisplayMetrics();
        ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm);
        int disW = dm.widthPixels;
        return disW;
    }


    /**
     * 獲取手機分辨率--H
     * */
    public static int getPhoneWH(Context context){
        DisplayMetrics dm = new DisplayMetrics();
        ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm);
        int disH = dm.heightPixels;
        return disH;
    }

    /**
     * MD5加密
     *
     * @param str 傳入的密碼
     * @return
     */
    public static String md5(String str) {

        MessageDigest md;
        try {
            md = MessageDigest.getInstance("MD5");
            md.update(str.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            return buf.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        return str;
    }



    /**
     * 獲取當前sdk版本
     * @return
     */

    public static int getAndroidSDKVersion() {
        int version = 0;
        try {
            version = Integer.valueOf(android.os.Build.VERSION.SDK_INT);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (Exception e){
            e.printStackTrace();
        }
        return version;
    }


    /**
     * 獲取CPU數量
     * */
    public static int cpuNums(){
        int nums = 1;
        try{
            File file = new File("/sys/devices/system/cpu/");
            File[] files = file.listFiles(new FileFilter() {
                @Override
                public boolean accept(File arg0) {
                    if(Pattern.matches("cpu[0-9]", arg0.getName())){
                        return true;
                    }
                    return false;
                }
            });
            nums = files.length;
        } catch (Exception e){
            e.printStackTrace();
        }
        return nums;
    }

    /**
     * 判斷app是否在後臺運行
     *
     * @param context
     * @return
     */
    public static boolean isBackgroundRunning(Context context) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
        if (!tasks.isEmpty()) {
            ComponentName topActivity = tasks.get(0).topActivity;
            if (!topActivity.getPackageName().equals(context.getPackageName())) {
                return true;
            }
        }
        return false;
    }
}



發佈了33 篇原創文章 · 獲贊 95 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章