- public class SystemInfoUtils {
- public static int getRunningAppProcesses(Context context) {// 得到当前系统内运行的app进程数量
- ActivityManager am = (ActivityManager) context
- .getSystemService(Context.ACTIVITY_SERVICE);
- List<RunningAppProcessInfo> appInfos = am.getRunningAppProcesses();
- return appInfos.size();
- }
- public static List<HashMap<String, Object>> getAppInfo(Context context) {// 得到非系统应用的app信息
- List<HashMap<String, Object>> appInfos = new ArrayList<HashMap<String, Object>>();
- HashMap<String, Object> map = null;
- List<PackageInfo> packages = context.getPackageManager()
- .getInstalledPackages(0);// 参数传入0表示过滤权限,因为可能有的手机不让你获取应用信息
- for (PackageInfo temp : packages) {
- if ((temp.applicationInfo.flags & temp.applicationInfo.FLAG_SYSTEM) == 0) {
- // 非系统应用
- // 得到应用的名称
- String appName = temp.applicationInfo.loadLabel(
- context.getPackageManager()).toString();
- // 得到应用图标
- Drawable appIcon = temp.applicationInfo.loadIcon(context
- .getPackageManager());
- // 得到应用最后一次更新的时间
- long lastUpdateTime = temp.lastUpdateTime;
- // 得到应用的包名
- String packageName = temp.packageName;
- // 得到应用的版本信息
- String versionName = temp.versionName;
- map = new HashMap<String, Object>();
- map.put("appName", appName);
- map.put("appIcon", appIcon);
- map.put("lastUpdateTime", lastUpdateTime);
- map.put("packageName", packageName);
- map.put("versionName", versionName);
- appInfos.add(map);// 把应用信息加入集合中返回
- map = null;
- } else {
- // 系统应用
- }
- }
- return appInfos;
- }
- // 获取sd卡容量
- public static String getSdSize(Context context) {
- String totalStr = null, availStr = null;
- if (Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)) {// 判断是否检测到sd卡
- File path = Environment.getExternalStorageDirectory();
- StatFs stat = new StatFs(path.getPath());
- long blockSize = stat.getBlockSizeLong();
- long availableBlocks = stat.getAvailableBlocksLong();
- long totalBlocks = stat.getBlockCountLong();
- long totalSize = blockSize * totalBlocks;
- long availSize = blockSize * availableBlocks;
- totalStr = Formatter.formatFileSize(context, totalSize);
- availStr = Formatter.formatFileSize(context, availSize);
- } else
- Toast.makeText(context, "没有检测到SD卡,请检查是否正确插入", Toast.LENGTH_SHORT)
- .show();
- return "SD卡总容量为:" + totalStr + "可用为:" + availStr;
- }
- // 获取手机内存
- public static String getRomSave(Context context) {
- String totalStr = null, availStr = null;
- File path = Environment.getDataDirectory();
- StatFs stat = new StatFs(path.getPath());// 得到手机内存的路径
- long blockSize = stat.getBlockSizeLong();
- long availableBlocks = stat.getAvailableBlocksLong();
- long totalBlocks = stat.getBlockCountLong();
- long totalSize = blockSize * totalBlocks;
- long availSize = blockSize * availableBlocks;
- totalStr = Formatter.formatFileSize(context, totalSize);
- availStr = Formatter.formatFileSize(context, availSize);
- return "手机内存总大小为:" + totalStr + "可用空间为:" + availStr;
- }
- }
来源: http://www.phpxs.com/code/1001519/