获取Android各类系统相关信息的接口实现代码
16lz
2021-01-23
/** * 获取系统中所有安装包信息 */public String getAllPackages(Context context){String appList = "";List<PackageInfo> packages = context.getPackageManager().getInstalledPackages(0);for (PackageInfo packageInfo : packages) {// 这里可以控制是否需要获取系统级别的packageif ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0){appList += packageInfo.applicationInfo.loadLabel(getPackageManager()).toString() + ",";}}return appList.substring(0, appList.length()-1);}/** * 获取系统内存信息 */public String getSysMemoryInfo(Context context){long freeMem = 0;long totalMem = 0;ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);MemoryInfo memoryInfo = new MemoryInfo();activityManager.getMemoryInfo(memoryInfo);freeMem = memoryInfo.availMem/1024/1024;//读取指定文件信息 String path = "/proc/meminfo"; String content = null; BufferedReader br = null; try { br = new BufferedReader(new FileReader(path), 8); String line; if ((line = br.readLine()) != null) { content = line; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } // beginIndex int begin = content.indexOf(':'); // endIndex int end = content.indexOf('k'); // 截取字符串信息content = content.substring(begin + 1, end).trim(); totalMem = Integer.parseInt(content)/1024; return freeMem+" "+totalMem;}/** * 获取CPU信息 */ private String getCpuInfo() { String str1 = "/proc/cpuinfo"; String str2 = ""; String cpuInfo=""; //1-cpu型号 //2-cpu频率 String[] arrayOfString; try { FileReader fr = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); for (int i = 2; i < arrayOfString.length; i++) { cpuInfo = arrayOfString[i] + " "; } str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); cpuInfo =cpuInfo + arrayOfString[2]; localBufferedReader.close(); } catch (IOException e) { } return cpuInfo; } /** * 获取MAC地址 */ private String getMacAddress(){ String result = ""; WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); result = wifiInfo.getMacAddress(); // Log.i(TAG, "macAdd:" + result); return result; } /** * 获取其他手机信息 */ private String getInfo() { TelephonyManager mTm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); String imei = mTm.getDeviceId(); String imsi = mTm.getSubscriberId(); String mtype = android.os.Build.MODEL; // 手机型号 String numer = mTm.getLine1Number(); // 手机号码 return imei + " " + imsi + " " + mtype + " " + numer; } /** * 获取屏幕的分辨率 */ private String getWeithAndHeight(){ //这种方式在service中无法使用, DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; //宽 int height = dm.heightPixels; //高 //在service中也能得到高和宽 WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); int width0 = mWindowManager.getDefaultDisplay().getWidth(); int height0 = mWindowManager.getDefaultDisplay().getHeight(); return ""+width +" "+height + " " +width0 + " " +height0; }
更多相关文章
- Android获取地理位置信息(GPS/NETWORK)
- Android社交系统----界面预览
- android(8)(获取手机系统内存和SD卡内存信息)
- js判断移动终端浏览器版本信息
- 移动端区分安卓系统和ios系统
- android自己开发的系统软件报错
- 转来的··调用系统相机拍照和调用相册
- Android studio 编译异常信息记录
- android的input_event的流程,以及如何获取输入设备的相关信息