마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 runtime.getRuntime.exec() 질문

0 추천
runtime.getruntime.exec 를 처음 사용해 보게 되는데요

adb shell 에서 /sys/class/thermal/thermal_zone0 로 들어가서 cat temp 로 씨피유의 온도를 확인할수 있는데

이걸 getruntime을 이용해서 쓰려면

Process CpuTemper = Runtime.getRuntime().exec(" cd /sys/class/thermal/thermal_zone0 cat temp " ) ;

라고 써야

저 thermal_zone0 로 이동한 다음 temp 파일을 실행시키게 되나요 ?

그리고 저 함수를 쓰게되면 cpu 의 온도를 받아와서 출력을 해줄수 있을까요 ?
점프점프캥거루 (200 포인트) 님이 2014년 12월 11일 질문

1개의 답변

+1 추천
'cat' 이 명령은 command 모드에서 사용하는 겁니다.

exec로 불가능 한 건 아니지만 지금 상황에서 사용하는 건 아닙니다.

프로그램에서는 file open 해서 읽으면 됩니다.

대략 아래와 같을 겁니다. (에러처리, 문자열 처리 등은 생략)

 

RandomAccessFile fp = new RandomAccessFile("/sys/class/thermal/thermal_zone0/temp", "r");

String str = fp.readLine();

fp.close();

 

그런데 여기서 str 에 무엇이 들어 있을지는 모르겠네요.

기기에 따라서 해당 파일이 없기도 하고, 내용이 다를 수도 있습니다.

 

그런데 시스템 온도는

Intent intent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0);

로 얻을 수 있습니다. 0.1도 단위 정수로 반환됩니다. 지금 온도가 25.3도라면 temp = 253.
JINASYS (5,630 포인트) 님이 2014년 12월 12일 답변
아 배터리온도 = cpu 온도 거의 흡사한가요 ?
지금 생각하는게 cpu에 과부하가 걸려서 온도가 올라가게 되면 잠시 기능을 정지시키는걸 생각중이라서요
...