免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2422 | 回复: 1
打印 上一主题 下一主题

android获取手机信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-28 11:01 |只看该作者 |倒序浏览
android获取手机信息






1.获取手机安装的应用信息(排除系统自带):





Java代码
  1. private String getAllApp() {   
  2.         String result = "";   
  3.         List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);   
  4.         for (PackageInfo i : packages) {   
  5.             if ((i.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {   
  6.                 result += i.applicationInfo.loadLabel(getPackageManager()).toString() + ",";   
  7.             }   
  8.         }   
  9.         return result.substring(0, result.length() - 1);   
  10. }  

  11. private String getAllApp() {
  12.         String result = "";
  13.         List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
  14.         for (PackageInfo i : packages) {
  15.             if ((i.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
  16.                 result += i.applicationInfo.loadLabel(getPackageManager()).toString() + ",";
  17.             }
  18.         }
  19.         return result.substring(0, result.length() - 1);
  20. }
复制代码
以字符串的形式返回应用的名字app1,app2,app3,...........apps    中间的以","分开。当然还可以得到包名,icon图标,等等 。



2.获取手机可用内存和总内存:





Java代码
  1. private String[] getTotalMemory() {   
  2.        String[] result = {"",""};  //1-total 2-avail   
  3.        ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();     
  4.        mActivityManager.getMemoryInfo(mi);     
  5.        long mTotalMem = 0;   
  6.        long mAvailMem = mi.availMem;   
  7.        String str1 = "/proc/meminfo";   
  8.        String str2;   
  9.        String[] arrayOfString;   
  10.        try {   
  11.            FileReader localFileReader = new FileReader(str1);   
  12.            BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);   
  13.            str2 = localBufferedReader.readLine();   
  14.            arrayOfString = str2.split("\\s+");   
  15.            mTotalMem = Integer.valueOf(arrayOfString[1]).intValue() * 1024;   
  16.            localBufferedReader.close();   
  17.        } catch (IOException e) {   
  18.            e.printStackTrace();   
  19.        }   
  20.        result[0] = Formatter.formatFileSize(this, mTotalMem);   
  21.        result[1] = Formatter.formatFileSize(this, mAvailMem);   
  22.        Log.i(TAG, "meminfo total:" + result[0] + " used:" + result[1]);   
  23.        return result;   
  24.    }  

  25. private String[] getTotalMemory() {
  26.         String[] result = {"",""};  //1-total 2-avail
  27.         ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();  
  28.         mActivityManager.getMemoryInfo(mi);  
  29.         long mTotalMem = 0;
  30.         long mAvailMem = mi.availMem;
  31.         String str1 = "/proc/meminfo";
  32.         String str2;
  33.         String[] arrayOfString;
  34.         try {
  35.             FileReader localFileReader = new FileReader(str1);
  36.             BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);
  37.             str2 = localBufferedReader.readLine();
  38.             arrayOfString = str2.split("\\s+");
  39.             mTotalMem = Integer.valueOf(arrayOfString[1]).intValue() * 1024;
  40.             localBufferedReader.close();
  41.         } catch (IOException e) {
  42.             e.printStackTrace();
  43.         }
  44.         result[0] = Formatter.formatFileSize(this, mTotalMem);
  45.         result[1] = Formatter.formatFileSize(this, mAvailMem);
  46.         Log.i(TAG, "meminfo total:" + result[0] + " used:" + result[1]);
  47.         return result;
  48.     }
复制代码
手机的内存信息主要在/proc/meminfo文件中,其中第一行就是总内存,而剩余内存可通过 ActivityManager.MemoryInfo得到 。



3.手机CPU信息





Java代码
  1. private String[] getCpuInfo() {   
  2.         String str1 = "/proc/cpuinfo";   
  3.         String str2 = "";   
  4.         String[] cpuInfo = {"", ""};  //1-cpu型号  //2-cpu频率   
  5.         String[] arrayOfString;   
  6.         try {   
  7.             FileReader fr = new FileReader(str1);   
  8.             BufferedReader localBufferedReader = new BufferedReader(fr, 8192);   
  9.             str2 = localBufferedReader.readLine();   
  10.             arrayOfString = str2.split("\\s+");   
  11.             for (int i = 2; i < arrayOfString.length; i++) {   
  12.                 cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";   
  13.             }   
  14.             str2 = localBufferedReader.readLine();   
  15.             arrayOfString = str2.split("\\s+");   
  16.             cpuInfo[1] += arrayOfString[2];   
  17.             localBufferedReader.close();   
  18.         } catch (IOException e) {   
  19.         }   
  20.         Log.i(TAG, "cpuinfo:" + cpuInfo[0] + " " + cpuInfo[1]);   
  21.         return cpuInfo;   
  22.     }  

  23. private String[] getCpuInfo() {
  24.         String str1 = "/proc/cpuinfo";
  25.         String str2 = "";
  26.         String[] cpuInfo = {"", ""};  //1-cpu型号  //2-cpu频率
  27.         String[] arrayOfString;
  28.         try {
  29.             FileReader fr = new FileReader(str1);
  30.             BufferedReader localBufferedReader = new BufferedReader(fr, 8192);
  31.             str2 = localBufferedReader.readLine();
  32.             arrayOfString = str2.split("\\s+");
  33.             for (int i = 2; i < arrayOfString.length; i++) {
  34.                 cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";
  35.             }
  36.             str2 = localBufferedReader.readLine();
  37.             arrayOfString = str2.split("\\s+");
  38.             cpuInfo[1] += arrayOfString[2];
  39.             localBufferedReader.close();
  40.         } catch (IOException e) {
  41.         }
  42.         Log.i(TAG, "cpuinfo:" + cpuInfo[0] + " " + cpuInfo[1]);
  43.         return cpuInfo;
  44.     }
复制代码
和内存信息同理,cpu信息可通过读取/proc/cpuinfo文件来得到,其中第一行为cpu型号,第二行为cpu频率。



4.获取手机MAC地址:





Java代码
  1. private String getMacAddress(){   
  2.         String result = "";   
  3.         WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);   
  4.         WifiInfo wifiInfo = wifiManager.getConnectionInfo();   
  5.         result = wifiInfo.getMacAddress();   
  6.         Log.i(TAG, "macAdd:" + result);   
  7.         return result;   
  8.     }  

  9. private String getMacAddress(){
  10.         String result = "";
  11.         WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  12.         WifiInfo wifiInfo = wifiManager.getConnectionInfo();
  13.         result = wifiInfo.getMacAddress();
  14.         Log.i(TAG, "macAdd:" + result);
  15.         return result;
  16.     }
复制代码
MAC地址比较容易,直接通过WifiManager得到。



4.IMEI号,IESI号,手机型号等:




Java代码
  1. private void getInfo() {   
  2.         DisplayMetrics dm = new DisplayMetrics();   
  3.         getWindowManager().getDefaultDisplay().getMetrics(dm);   
  4.         String width = dm.widthPixels;              //宽   
  5.         String height = dm.heightPixels;           //高   
  6.         TelephonyManager mTm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);   
  7.         String imei = mTm.getDeviceId();   
  8.         String imsi = mTm.getSubscriberId();   
  9.         String mtype = android.os.Build.MODEL; // 手机型号   
  10.         String numer = mTm.getLine1Number(); // 手机号码,有的可得,有的不可得   
  11.     }  
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-12-28 11:02 |只看该作者
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP