获取Android各类系统相关信息的接口实现代码

标签: android 系统 相关 | 发表时间:2013-04-25 23:58 | 作者:newjerryj
出处:http://blog.csdn.net
/**
   *  获取系统中所有安装包信息
   */
	public String getAllPackages(Context context)
	{
		String appList = "";
		List<PackageInfo> packages = context.getPackageManager().getInstalledPackages(0);
		for (PackageInfo packageInfo : packages) 
		{
			// 这里可以控制是否需要获取系统级别的package
			if ((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;
    	        }  



作者:newjerryj 发表于2013-4-25 23:58:40 原文链接
阅读:145 评论:0 查看评论

相关 [android 系统 相关] 推荐:

获取Android各类系统相关信息的接口实现代码

- - CSDN博客移动开发推荐文章
* 获取系统中所有安装包信息. // 这里可以控制是否需要获取系统级别的package. String cpuInfo=""; //1-cpu型号 //2-cpu频率. String mtype = android.os.Build.MODEL; // 手机型号. String numer = mTm.getLine1Number(); // 手机号码.

Android中HTTP相关的API

- - 技术小黑屋
Android中大多数应用都会发送和接受HTTP请求,在Android API中主要由两个HTTP请求的相关类,一个是HttpURLConnection,另一个是Apache HTTP Client. 这两个类实现的HTTP请求都支持HTTPS协议,基于流的上传和下载,可配置超时时间,IPv6和连接池.

Android是个好系统

- - 月光博客
  仅凭一个Android,Google完全有资格领好人卡. 因为Android开源,就可以放心大胆的做各种“美化”、“定制”、“深度定制”. 而Google对这些行为不能抗议、强烈谴责、严正交涉,只能不满和深表遗憾.   对于Android在中国的情况,Williamlong认为:.    @williamlong: 对于互联网公司做手机,我会鄙视那些所谓“深度定制”而实际是删除谷歌帐号的那些平台,这不是国家政策方面的问题,谷歌应用删除了无所谓,用户可以自己安装,但是将谷歌帐号删除掉之后,用户只有通过刷机等复杂操作才能安装谷歌应用商店和其他谷歌应用,这对于用户来说是一种恶意绑架行为.

Android操作系统安全

- - CSDN博客推荐文章
        Android在迅猛发展的同时,其安全问题一直没有引起足够的重视,但在2010年6月研究人员发布Android平台的KernelRootkit以来,Android平台的安全问题引来了越来越多的关注,而同时,Android平台的恶意软件也开始流行起来.        根据以上的Android系统架构分析,可以发现在三个层面可能存在恶意软件.

Android 系统架构分析

- - CSDN博客移动开发推荐文章
Android:开源的 Linux + Google 的封闭软件 + 私有的基带 + 运营商锁定 = 开放的 Android 手机. iPhone:开源的 BSD + 苹果的闭源软件 + 私有的基带 + 运营商锁定 = 封闭的苹果 iPhone. 一个平庸的应用商店,开发者依靠广告赚钱,商店并非独此一家,用户找不到好软件.

MIUI是个不错的Android UI系统

- Keven - Engadget 中国版
显然,点心不是唯一的专为中国用户打造的Android UI,你还可以选择民间的另一个版本:MIUI,也是不错,中国原创Android ROM小组出品,基于Android 2.2 原生开发,对短信和电话做了速度提升,同时整个UI和动画的切换也做了提升,感觉很不错,有兴趣的可以去官方网站去看看,目前支持Nexus One/HTC Desire G7,更多版本应该会在后续到来.

J.Wong:MX、M9都有Android 4.0系统更新

- Adam - cnBeta.COM
近期不少煤油纷纷在论坛上发帖询问,魅族梦想机MX何时能用上Android 4.0系统. 对于如此敏感的话题,J.Wong现身给予回应称,会尽快为MX和M9带来Ice Cream Sandwich系统的更新. 当一位煤油发帖询问MX上市会不会跳票时,J.Wong意外现身并跟帖回复称,MX将会保持原计划在12月份正式上市.

AndroZip-Android系统解压缩软件

- - 无名小卒
         AndroZip是一款Android平台的解压缩/压缩软件,在Android设备上压缩或解压缩ZIP, RAR, 7ZIP, GZIP, TAR, BZIP2格式文档. 1、内建程序管理,可备份程序到存储卡. 2、可解压压缩大小为64 kb, 1MB, 2MB, 3MB, 4MB, 6MB的7Z文件,快速查看ZIP和RAR文件中的内容.

Android 4.0.3来了 优化系统

- - 移动App
最近发现谷歌对Android态度有个趋势,越来越关注Android的系统优化这快 包括硬件加速 ,内存优化等,这不今天更新了Android 4.0.3最大的提升是硬件优化方面. 新版 Android 包括了面向平板和手机平台的系统优化和漏洞修复,以及面向开发者的少量新 API. 新 API 包括联系人程序支持服务社交流 API,日历程序支持服务改进,新的相机性能(应用可检查和管理视频稳定性,必要时可利用 QVGA 分辨率文档),已经提供了易用性(文本转语音引擎采用新的状态和错误报告).

mac系统连接android手机

- - CSDN博客移动开发推荐文章
mac系统不能连接android手机问题的解决方案:. 2、找到android手机的vendor ID:.      终端执行CMD:  system_profiler SPUSBDataType. 在列出的usb设备中找到自己的手机,copy下vendor ID. 3、将vandor ID放到配置文件中:  ~/.android/adb_usb.ini.