Android 工具類

e4cb 9年前發布 | 2K 次閱讀 Java Android

目前工具類中的方法有: 獲取屏幕寬度高度密度 獲取MAC地址 獲取當前時間 日期格式轉換 獲取當前版本名,版本號 網絡檢測.

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.text.TextUtils; import android.util.DisplayMetrics;

public class MyUtils {

/**
 * 獲取屏幕寬度高度密度
 * 
 *  如果屏幕密度低,需要在工程的AndroidManifest.xml文件中,加入supports-screens節點 
 * <supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:resizeable="true"
    android:anyDensity="true"/>
 * @param activity 屏幕界面
 * @param type     類型1:寬度,2:高度,3:密度,4dpi密度
 * @return 屏幕寬度或高度或密度
 */
public Object getWindowSize(Activity activity,int type){
    DisplayMetrics metric = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(metric);
    if (type == 1) {
        int width = metric.widthPixels;  // 屏幕寬度(像素)
        return width;
    }else if (type == 2) {
        int height = metric.heightPixels;  // 屏幕高度(像素)
        return height;
    }else if (type == 3) {
        float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
        return density;
    }else if (type == 4) {
        int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)
        return densityDpi;
    }
    return 0;
}

/**
 * 獲取MAC地址    
 * @param context 上下文
 * @param replaceSymbol 替換字符,默認替換字符為""
 * @return 返回MAC地址     錯誤返回12個0
 */
public String getMacAddress(Context context,String replaceSymbol) {
    String macAddress = "000000000000";
    if (replaceSymbol == null) {
        replaceSymbol = "";
    }
    try {
        WifiManager wifiMgr = (WifiManager) context
                .getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = (null == wifiMgr ? null : wifiMgr
                .getConnectionInfo());
        if (null != info) {
            if (!TextUtils.isEmpty(info.getMacAddress()))
                macAddress = info.getMacAddress().replace(":", replaceSymbol);
            else
                return macAddress;
        }
    } catch (Exception e) {
        e.printStackTrace();
        return macAddress;
    }
    return macAddress;
}

/**
 *  獲取當前時間
 * @param type 日期時間格式
 * @param locale 地區默認為 Locale.CHINA
 * @return 按照格式返回當前時間
 */
public String getCurrentTime(String type,Locale locale) {
    if (locale == null) {
        locale = Locale.CHINA;
    }
    Date curDate = new Date(System.currentTimeMillis());
    SimpleDateFormat sdf = new SimpleDateFormat(type,locale);
    return sdf.format(curDate);
}

/**
 * 日期格式轉換
 * 
 * @param date 待轉換日期
 * @param type 格式
 * @param locale 地區 默認為 Locale.CHINA
 * @return 日期
 */
public String formatDate(String date, String type,Locale locale) {
    String fmDate = "";
    if (date != null) {
        if (locale == null) {
            locale = Locale.CHINA;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(type,locale);
        fmDate = sdf.format(new Date(Long.parseLong(date)));
    }
    return fmDate;
}

/**
 * 獲取當前版本名,版本號
 * @param context 上下文
 * @param type 1:版本名稱,2:版本號
 * @return 版本名或版本號
 */
public Object getCurrentVersionName(Context context,int type){
    PackageManager manager = context.getPackageManager();
    String packageName = context.getPackageName();
    String versionName = null;
    int versionCode = 0;
    try {
        PackageInfo info = manager.getPackageInfo(packageName, 0);
        if (type == 1) {
            versionName = info.versionName;
            return versionName;
        }else if (type == 2) {
            versionCode = info.versionCode;
            return versionCode;
        }

    } catch (NameNotFoundException e) {
        e.printStackTrace();
        return null;
    }
    return null;
}

/**
 * 網絡檢測 
 * @param context 上下文
 * @return false:無網絡,true:有網絡
 */
public boolean isOnline(Context context) {
    boolean isOnline = false;
    final ConnectivityManager cm = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    final NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    if (networkInfo != null) {
        isOnline = networkInfo.isAvailable();
    }
    // String netType = "當前網絡類型為:" + networkInfo.getTypeName();
    return isOnline;
}

}

</pre>

 本文由用戶 e4cb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!