十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要為大家展示了“Android開發(fā)之系統(tǒng)管理工具類的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Android開發(fā)之系統(tǒng)管理工具類的示例分析”這篇文章吧。
創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站開發(fā),網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:18982081108
具體如下:
這是一個(gè)系統(tǒng)管理工具類,管理sd卡,判斷網(wǎng)絡(luò),uri轉(zhuǎn)換,獲取屏幕寬高,獲取網(wǎng)絡(luò)類型,隱藏軟鍵盤,復(fù)制文本到粘貼板,獲取狀態(tài)欄高度,獲取當(dāng)前進(jìn)程等。
上代碼
import java.io.File; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.app.ActivityManager; import android.content.ClipData; import android.content.Context; import android.database.Cursor; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Build; import android.os.Environment; import android.os.StatFs; import android.provider.MediaStore; import android.text.TextUtils; import android.util.DisplayMetrics; import android.view.View; import android.view.inputmethod.InputMethodManager; @SuppressWarnings("deprecation") public class SystemUtil { public static final int NETTYPE_WIFI = 0x01; public static final int NETTYPE_CMWAP = 0x02; public static final int NETTYPE_CMNET = 0x03; /** 判斷是否手機(jī)插入Sd卡 */ public static boolean sdCardUseable() { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); } /** * 獲取Sd卡的總?cè)萘? * * @return */ @SuppressLint("NewApi") public static long getSdCardTotalSize() { if(!sdCardUseable()){ return 0; } // 取得SD卡文件路徑 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); // 獲取單個(gè)數(shù)據(jù)塊的大小(Byte) long blockSize = sf.getBlockSizeLong(); // 獲取所有數(shù)據(jù)塊數(shù) long allBlocks = sf.getBlockCountLong(); // 返回SD卡大小 // return allBlocks * blockSize; //單位Byte // return (allBlocks * blockSize)/1024; //單位KB return (allBlocks * blockSize) / 1024 / 1024; // 單位MB } /** * 獲取Sd卡的可用容量 * * @return */ @SuppressLint("NewApi") public static long getSdCardFreeSize() { if(!sdCardUseable()){ return 0; } // 取得SD卡文件路徑 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); // 獲取單個(gè)數(shù)據(jù)塊的大小(Byte) long blockSize = sf.getBlockSizeLong(); // 空閑的數(shù)據(jù)塊的數(shù)量 long freeBlocks = sf.getAvailableBlocksLong(); // 返回SD卡空閑大小 // return freeBlocks * blockSize; //單位Byte // return (freeBlocks * blockSize)/1024; //單位KB return (freeBlocks * blockSize) / 1024 / 1024; // 單位MB } /** * 判斷是否聯(lián)網(wǎng)或者漫游 * * @param context * @return boolean */ public static boolean hasNet(Context context) { // 獲得ConnectivityManager的管理器 NetworkInfo info = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); if (info == null || !info.isConnected()) { return false; } if (info.isRoaming()) { // 漫游判斷 return true; } return true; } /** 獲得The data stream for the file */ public static String getUrlPath(Activity context, Uri uri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = context.managedQuery(uri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } /** 從傳入U(xiǎn)ri獲得真實(shí)的path */ public String getRealPathFromURI(Activity context, Uri contentUri) { // can post image String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = context.managedQuery(contentUri, proj, // Which columns // to return null, // WHERE clause; which rows to return (all rows) null, // WHERE clause selection arguments (none) null); // Order-by clause (ascending by name) int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } /** 獲得屏幕的寬度 */ public static int getScreenWidth(Activity context) { DisplayMetrics outMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); return outMetrics.widthPixels; } /** 獲取屏幕的高度 */ public static int getScreenHeight(Activity context) { DisplayMetrics outMetrics = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(outMetrics); return outMetrics.heightPixels; } /** 獲得網(wǎng)絡(luò)的類型 */ public static int getNetworkType(Context context) { int netType = 0; ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo == null) { // 判斷是否聯(lián)網(wǎng) return netType; } int nType = networkInfo.getType(); // 獲得 if (nType == ConnectivityManager.TYPE_MOBILE) { String extraInfo = networkInfo.getExtraInfo(); if (!TextUtils.isEmpty(extraInfo)) { if (extraInfo.toLowerCase().equals("cmnet")) { netType = NETTYPE_CMNET; } else { netType = NETTYPE_CMWAP; } } } else if (nType == ConnectivityManager.TYPE_WIFI) { netType = NETTYPE_WIFI; } return netType; } /** 隱藏軟件盤 */ public static void hideSoftKeyborad(Activity context) { final View v = context.getWindow().peekDecorView(); // Retrieve the // current decor // view if (v != null && v.getWindowToken() != null) { InputMethodManager imm = (InputMethodManager) context // 獲得輸入方法的Manager .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } } /** * 復(fù)制文本到剪切板 * * @param context * @param text */ @TargetApi(value = 11) @SuppressLint({ "NewApi", "NewApi" }) public static void copyText(Context context, String text) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context .getSystemService(Context.CLIPBOARD_SERVICE); ClipData clipData = ClipData.newPlainText("label", text); clipboardManager.setPrimaryClip(clipData); } else { android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); clipboardManager.setText(text); } } /** * 獲取狀態(tài)欄高度 * * @return */ public static int getStatusBarHeight(Context context) { Class> c = null; Object obj = null; java.lang.reflect.Field field = null; int x = 0; int statusBarHeight = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField("status_bar_height"); x = Integer.parseInt(field.get(obj).toString()); statusBarHeight = context.getResources().getDimensionPixelSize(x); return statusBarHeight; } catch (Exception e) { e.printStackTrace(); } return statusBarHeight; } /** * 獲取當(dāng)前進(jìn)程名 * @param context * @return 進(jìn)程名 */ public static final String getProcessName(Context context) { String processName = null; // ActivityManager ActivityManager am = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)); while (true) { for (ActivityManager.RunningAppProcessInfo info : am.getRunningAppProcesses()) { if (info.pid == android.os.Process.myPid()) { processName = info.processName; break; } } // go home if (!TextUtils.isEmpty(processName)) { return processName; } // take a rest and again try { Thread.sleep(100L); } catch (InterruptedException ex) { ex.printStackTrace(); } } } }
以上是“Android開發(fā)之系統(tǒng)管理工具類的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!