2014-04-28 7 views
0

이 코드는 아래 성공적으로 안드로이드 장치를 재부팅 :뿌리 안드로이드는 모든 명령을 실행하지 않는 프로그래밍 방식

Process p = Runtime.getRuntime().exec("su"); 

    OutputStream outputStream = p.getOutputStream(); 
    InputStream inputStream = p.getInputStream(); 
    DataOutputStream dataOutputStream = new DataOutputStream(outputStream); 
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

    dataOutputStream.writeBytes("reboot"); 
    dataOutputStream.flush(); 
    dataOutputStream.close(); 
    outputStream.close(); 
      p.waitFor(); 

이 코드는 현재 실행중인 응용 프로그램을 중지하기로되어있다. 그러나 그것은 아무것도하지 않습니다.

 Process p = Runtime.getRuntime().exec("su"); 

     OutputStream outputStream = p.getOutputStream(); 
     InputStream inputStream = p.getInputStream(); 
     DataOutputStream dataOutputStream = new DataOutputStream(outputStream); 
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

     dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX"); 
     dataOutputStream.flush(); 
     dataOutputStream.close(); 
     outputStream.close(); 
     p.waitFor(); 

모든 명령은 ADB 쉘을 통해 작동하며 장치에는 "su"스크립트가 있습니다. 문제를 해결할 수있는 프로세스가 있습니까? 어떻게해야합니까?

dataOutputStream.flush()는 그 날이 오류를 범 실행될 때 : System.err에/W (6969) :

1월 4일에서 29일까지 : 56 : 05.057를 java.io.SyncFailedException의 : fsync를 실패 : EINVAL (잘못된 인수)

+0

무엇이 당신의 질문입니까? 당신이 겪고있는 문제는 무엇입니까? – panini

+0

두 번째 코드 집합이 작동하지 않지만 첫 번째 코드 집합은 작동합니까? 왜 모든 통찰력? –

+0

"작동하지 않습니다"는 의미가있을 수 있습니다. – panini

답변

0

사용 시도 - 캐치 서라운드 쓰기 플러시

영향을받지
try{ 
dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX"); 
dataOutputStream.flush(); 
}catch(IOException e){ 
} 

간부 결과!