Читать текущую частоту процессора

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

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: извините за плохой английский.

1 ответ

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();
Другие вопросы по тегам