Android开发之系统管理工具类的示例分析
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要为大家展示了"Android开发之系统管理工具类的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Android开发之系统管理工具类的示
千家信息网最后更新 2026年11月04日Android开发之系统管理工具类的示例分析
这篇文章主要为大家展示了"Android开发之系统管理工具类的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Android开发之系统管理工具类的示例分析"这篇文章吧。
具体如下:
这是一个系统管理工具类,管理sd卡,判断网络,uri转换,获取屏幕宽高,获取网络类型,隐藏软键盘,复制文本到粘贴板,获取状态栏高度,获取当前进程等。
上代码
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; /** 判断是否手机插入Sd卡 */ public static boolean sdCardUseable() { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); } /** * 获取Sd卡的总容量 * * @return */ @SuppressLint("NewApi") public static long getSdCardTotalSize() { if(!sdCardUseable()){ return 0; } // 取得SD卡文件路径 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); // 获取单个数据块的大小(Byte) long blockSize = sf.getBlockSizeLong(); // 获取所有数据块数 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()); // 获取单个数据块的大小(Byte) long blockSize = sf.getBlockSizeLong(); // 空闲的数据块的数量 long freeBlocks = sf.getAvailableBlocksLong(); // 返回SD卡空闲大小 // return freeBlocks * blockSize; //单位Byte // return (freeBlocks * blockSize)/1024; //单位KB return (freeBlocks * blockSize) / 1024 / 1024; // 单位MB } /** * 判断是否联网或者漫游 * * @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); } /** 从传入Uri获得真实的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; } /** 获得网络的类型 */ public static int getNetworkType(Context context) { int netType = 0; ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo == null) { // 判断是否联网 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); } } /** * 复制文本到剪切板 * * @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); } } /** * 获取状态栏高度 * * @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; } /** * 获取当前进程名 * @param context * @return 进程名 */ 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开发之系统管理工具类的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
管理
单位
工具
管理工具
系统
大小
数据
示例
分析
开发
内容
屏幕
篇文章
网络
进程
高度
单个
容量
文件
文本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
为想互联网科技怎么样
中关村互联网科技集团
互联网属科技
期待互联网科技
狮子座互联网科技有限公司
科技创新互联网企业
菲比寻常互联网科技
互联网前沿科技
蓝色互联网科技
银川新华互联网科技学校地址
广州优美互联网科技
贵州叶脉互联网科技有限公司所属行业
昭通互联网科技选哪家
迪庆互联网科技招生
高科技互联网发展前景如何
互联网第三次科技革命特征
上海互联网科技公司ppt
广州梦谷互联网科技有限公司领导
安徽九吞吴互联网科技有限公司
互联网 科技节活动 微视频大赛
科技赋能下的互联网金融
科技互联网项目
卓越科技(互联网 )
剑昆互联网络科技有限公司临桂
以后互联网后是啥科技
科技互联网行业投资研究
互联网科技机房
张家口科技产业互联网平台
现代互联网科技公司
10位科技互联网大佬