Android开发之系统管理工具类的示例分析
发表于:2025-11-18 作者:千家信息网编辑
千家信息网最后更新 2025年11月18日,这篇文章主要为大家展示了"Android开发之系统管理工具类的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Android开发之系统管理工具类的示
千家信息网最后更新 2025年11月18日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安全错误
数据库的锁怎样保障安全
中小学网络安全感想
网络安全维护实施办法
软件开发技能鉴定
欣闻网络安全语句
一个oracle是多少个数据库
软件开发10个常识
百计网络技术有限公司
sap应用管理服务器
六级网络技术下
航天科技的工业互联网
连接数据库老断开
网络安全论文致谢文案
服务器百度云离线下载
用openwrt装服务器
学校卫生网络安全防控报告
网络技术可以学什么专业
极速开票打开提示数据库更新失败
安全托管大数据库
联志服务器厂家
网络技术与新零售
云数据库为什么这么贵
熊孩子炸服务器
人大网络安全应急预案
大班网络安全讲话
网络安全海报儿童图片
淘客软件开发哪家好
网络安全渗透方案
北京软件开发的公司有哪些
网络安全需要哪些知识
同程旅游软件开发待遇