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