Android系統信息工具類

jopen 9年前發布 | 1K 次閱讀 Java Android

    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;  
    }  
}  </pre> 


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