2012-08-09 4 views
2

별도의 축전지가있는 로봇에 Android 태블릿이 설치되어 있으며 축전지가 방전 될 때 태블릿의 전원을 끌 필요가 있습니다. 안드로이드 응용 프로그램에서 할 수있는 방법이 있습니까? 필요한 경우 장치를 루팅 할 수 있습니다.기기를 프로그래밍 방식으로 사용 중지하는 방법이 있습니까?

UPD - tablet - Acer Iconia A100, ICS.

UPD2 여기

하는 코드를 작동하고

try { 
     Process process = new ProcessBuilder() 
      .command("/system/bin/su") 
      .start(); 
      OutputStream o =process.getOutputStream(); 
      o.write("/system/bin/reboot -p\n".getBytes()); 

    } catch (Exception e) { 
     Toast.makeText(getApplicationContext(), "fail!", Toast.LENGTH_LONG).show(); 
    } 
+0

정확히 무엇 너는 무능함을 의미합니까? – meeDamian

+0

전원이 꺼져 있음 – Raiv

+0

Tasker에서이 작업을 수행하는 것이 더 쉬울 수도 있지만 프로그래밍 방식으로 수행 할 수도 있습니다. – Stieffers

답변

2

하는 방법 (뿌리 장치에서만 일하는 것이 그) 그런 일에 대해 :

try { 
    // it's possible you'd have to provide full path to rebot here (ex. '/system/bin/reboot -p' ??) 
    Runtime.getRuntime().exec("reboot -p"); 
} catch(Exception e) { // pokemon catching 

} 

전체 작업 예 (갱신) :

try { 
    // if that's not working use '/system/bin/su' instead 
    Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot -p"}); 

} catch(Exception e) { } 
+0

예, 재부팅이 성공했습니다! 나는 그 -p 속성이 장치를 종료시킬 것이라는 것을 몰랐다. ( – Raiv

+0

터미널 에뮬레이터에서 재부팅을 테스트했는데 모두 괜찮 았지만 Runtime.exec ("reboot -p")를 호출하면 프로세스가 중단되었다 ... Runtime.exec – Raiv

+0

그래, 먼저 su를 호출해야하기 때문에 완성 된 솔루션으로 내 대답을 업데이트했습니다 :) 작동합니다. 방금 확인한 후에 su 응용 프로그램에 권한을 부여하고 기억해야합니다. 각 장치에서 프로세스가 완전히 자동화 될 수 있도록 :) – meeDamian

관련 문제