안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
Runtime.getRuntime().exec를 활용하여 어플을 제작중입니다. 일단 개발폰이 루팅된 폰이여서 수퍼유저 권한을 획득하여 UNIX 명령어를
사용하려 하는데, "reboot,shutdown"같은 명령이 먹히질 않습니다. Runtime.getRuntime().exec("su"); 를 써서 수퍼유저 권한은
획득하지만, 위 명령어를 사용할경우 아래와 같은 에러가 나는데 왜그런 건지요? 안드로이드 운영체제단에서 위 명령을 막은것인가요?
그렇다면, 장치의 전원을 끄는 방법은 없는것인가요? 웨이크락이나 PowerManager를 제외하구요. 완전한 장치의 전원 종료를 구현하려면
어떻게 해야하는지 조언 부탁드립니다.
아래는 "shutdown"명령어를 썼을때, 로그캣의 에러메세지입니다.
Error running exec(). Command: [shutdown, -r, now] Working Directory: null Environment: null
어플이 권한을 갖는게 아니라서 안되는거 같구요.
해보진 않았지만 아래처럼 해보세요.
Runtime.getRuntime().exec("su -c reboot");
또는
Runtime.getRuntime().exec(new String[] {"su", "-c", "reboot");