2013-06-06 3 views
0

Я пытаюсь прочитать текущую частоту процессора. После некоторого исследования я нашел следующий код:Прочитать текущую частоту процессора

public String ReadCPUMhz2() throws IOException 
{ 
     String[] args = {"/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"}; 

     ProcessBuilder cmd; 
     cmd = new ProcessBuilder(args); 
     Process process = null; 
     process = cmd.start(); 

     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 

     StringBuilder log=new StringBuilder(); 

     String line; 
     Log.d("test","aha"); 
     while ((line = bufferedReader.readLine()) != null) { 
     log.append(line + "\n"); 
     } 
     Log.d("test",log.toString()); 
     return log.toString(); 
} 

Но это ничего не делает. Logcat показывает «aha» перед циклом while, но «log» кажется пустым. Я не вижу, что я сделал неправильно: s?

PS: Извините за плохой английский.

ответ

8

cpuinfo_max_freq даст вам максимальную частоту, а не текущую. Существует еще одно значение scaling_cur_freq (найдено в/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq), которое даст вам текущую частоту.

Как я могу получить доступ к cpuinfo_max_freq, возможно, вы можете применить это к scaling_cur_freq и посмотреть, работает ли он?

String cpuMaxFreq = ""; 
    RandomAccessFile reader = new RandomAccessFile("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", "r"); 
    cpuMaxFreq = reader.readLine(); 
    reader.close(); 
+0

Это работает, чтобы получить максимальную частоту, но попытка захвата текущей частоты также возвращает максимальную частоту. – jaytj95

Смежные вопросы