zoukankan      html  css  js  c++  java
  • android---获取设备相关信息

      1 public class DevManager
      2 {
      3     private static final String TAG = "CpuManager";
      4     Context mContext;
      5 
      6     public DevManager()
      7     {
      8 
      9     }
     10 
     11     public DevManager(Context context)
     12     {
     13         mContext = context;
     14     }
     15 
     16     // 获取CPU最大频率(单位KHZ)
     17     // "/system/bin/cat" 命令行
     18     // "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" 存储最大频率的文件的路径
     19     public static String getMaxCpuFreq()
     20     {
     21         String result = "";
     22         ProcessBuilder cmd;
     23         try
     24         {
     25             String[] args = { "/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" };
     26             cmd = new ProcessBuilder(args);
     27             Process process = cmd.start();
     28             InputStream in = process.getInputStream();
     29             byte[] re = new byte[24];
     30             while (in.read(re) != -1)
     31             {
     32                 result = result + new String(re);
     33             }
     34             in.close();
     35         } catch (IOException ex)
     36         {
     37             ex.printStackTrace();
     38             result = "N/A";
     39         }
     40         return result.trim();
     41     }
     42 
     43     // 获取CPU最小频率(单位KHZ)
     44     public static String getMinCpuFreq()
     45     {
     46         String result = "";
     47         ProcessBuilder cmd;
     48         try
     49         {
     50             String[] args = { "/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" };
     51             cmd = new ProcessBuilder(args);
     52             Process process = cmd.start();
     53             InputStream in = process.getInputStream();
     54             byte[] re = new byte[24];
     55             while (in.read(re) != -1)
     56             {
     57                 result = result + new String(re);
     58             }
     59             in.close();
     60         } catch (IOException ex)
     61         {
     62             ex.printStackTrace();
     63             result = "N/A";
     64         }
     65         return result.trim();
     66     }
     67 
     68     // 实时获取CPU当前频率(单位KHZ)
     69     public static String getCurCpuFreq()
     70     {
     71         String result = "N/A";
     72         try
     73         {
     74             FileReader fr = new FileReader("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
     75             BufferedReader br = new BufferedReader(fr);
     76             String text = br.readLine();
     77             result = text.trim();
     78         } catch (FileNotFoundException e)
     79         {
     80             e.printStackTrace();
     81         } catch (IOException e)
     82         {
     83             e.printStackTrace();
     84         }
     85         return result;
     86     }
     87 
     88     // 获取CPU名字
     89     public static String getCpuName()
     90     {
     91         try
     92         {
     93             FileReader fr = new FileReader("/proc/cpuinfo");
     94             BufferedReader br = new BufferedReader(fr);
     95             String text = br.readLine();
     96             String[] array = text.split(":\s+", 2);
     97             for (int i = 0; i < array.length; i++)
     98             {
     99             }
    100             return array[1];
    101         } catch (FileNotFoundException e)
    102         {
    103             e.printStackTrace();
    104         } catch (IOException e)
    105         {
    106             e.printStackTrace();
    107         }
    108         return null;
    109     }
    110 
    111     // 内存
    112     public void getTotalMemory()
    113     {
    114         String str1 = "/proc/meminfo";
    115         String str2 = "";
    116         try
    117         {
    118             FileReader fr = new FileReader(str1);
    119             BufferedReader localBufferedReader = new BufferedReader(fr, 8192);
    120             while ((str2 = localBufferedReader.readLine()) != null)
    121             {
    122                 Log.i(TAG, "---" + str2);
    123             }
    124         } catch (IOException e)
    125         {
    126         }
    127     }
    128 
    129     // rom大小
    130     public long[] getRomMemroy()
    131     {
    132         long[] romInfo = new long[2];
    133         // Total rom memory
    134         romInfo[0] = getTotalInternalMemorySize();
    135 
    136         // Available rom memory
    137         File path = Environment.getDataDirectory();
    138         StatFs stat = new StatFs(path.getPath());
    139         long blockSize = stat.getBlockSize();
    140         long availableBlocks = stat.getAvailableBlocks();
    141         romInfo[1] = blockSize * availableBlocks;
    142         getVersion();
    143         return romInfo;
    144     }
    145 
    146     public long getTotalInternalMemorySize()
    147     {
    148         File path = Environment.getDataDirectory();
    149         StatFs stat = new StatFs(path.getPath());
    150         long blockSize = stat.getBlockSize();
    151         long totalBlocks = stat.getBlockCount();
    152         return totalBlocks * blockSize;
    153     }
    154 
    155     // sd卡大小
    156     public long[] getSDCardMemory()
    157     {
    158         long[] sdCardInfo = new long[2];
    159         String state = Environment.getExternalStorageState();
    160         if (Environment.MEDIA_MOUNTED.equals(state))
    161         {
    162             File sdcardDir = Environment.getExternalStorageDirectory();
    163             StatFs sf = new StatFs(sdcardDir.getPath());
    164             long bSize = sf.getBlockSize();
    165             long bCount = sf.getBlockCount();
    166             long availBlocks = sf.getAvailableBlocks();
    167 
    168             sdCardInfo[0] = bSize * bCount;// 总大小
    169             sdCardInfo[1] = bSize * availBlocks;// 可用大小
    170         }
    171         return sdCardInfo;
    172     }
    173 
    174     // 电池容量
    175     private BroadcastReceiver batteryReceiver = new BroadcastReceiver()
    176     {
    177 
    178         @Override
    179         public void onReceive(Context context, Intent intent)
    180         {
    181             int level = intent.getIntExtra("level", 0);
    182             // level加%就是当前电量了
    183         }
    184     };
    185 
    186 //    registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    187 
    188     // 系统版本信息
    189     public String[] getVersion()
    190     {
    191         String[] version = { "null", "null", "null", "null" };
    192         String str1 = "/proc/version";
    193         String str2;
    194         String[] arrayOfString;
    195         try
    196         {
    197             FileReader localFileReader = new FileReader(str1);
    198             BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);
    199             str2 = localBufferedReader.readLine();
    200             arrayOfString = str2.split("\s+");
    201             version[0] = arrayOfString[2];// KernelVersion
    202             localBufferedReader.close();
    203         } catch (IOException e)
    204         {
    205         }
    206         version[1] = Build.VERSION.RELEASE;// firmware version
    207         version[2] = Build.MODEL;// model
    208         version[3] = Build.DISPLAY;// system version
    209         return version;
    210     }
    211 
    212     // mac地址和开机时间
    213     public String[] getOtherInfo()
    214     {
    215         String[] other = { "null", "null" };
    216         WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
    217         WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    218         if (wifiInfo.getMacAddress() != null)
    219         {
    220             other[0] = wifiInfo.getMacAddress();
    221         }
    222         else
    223         {
    224             other[0] = "Fail";
    225         }
    226         other[1] = getTimes();
    227         return other;
    228     }
    229 
    230     private String getTimes()
    231     {
    232         long ut = SystemClock.elapsedRealtime() / 1000;
    233         if (ut == 0)
    234         {
    235             ut = 1;
    236         }
    237         int m = (int) ((ut / 60) % 60);
    238         int h = (int) ((ut / 3600));
    239 //        return h + " " + mContext.getString(R.string.info_times_hour) + m + " " + mContext.getString(R.string.info_times_minute);
    240         return h + " " + "时" + m + " " + "分";
    241     }
    242 }
  • 相关阅读:
    热血投篮~手机游戏图像外包,美术完成度超过80%。现在需要对部分元素进行修改,价格
    BetaTank 1.0.1 手机 游戏 Nokia Symbian 塞班
    弹弓弹球 (banus) Android 游戏
    欢迎反馈意见
    Which Macros should I use? Themida的SDK中应该怎么使用各种宏?
    通过Daffodil for VS使VS2010的IDE可以用VC6 VC7.1 VC9等编译器进行项目编译
    STL中各种容器效率
    AcceptEx获取远程ip和端口
    PC寄存器
    VC6 sp6补丁地址
  • 原文地址:https://www.cnblogs.com/garfieldx/p/3408817.html
Copyright © 2011-2022 走看看