2013-07-13 2 views
0

내 장치에서 작동하지 않는/에뮬레이터 : 나는 SuperUser.apk 설치 한안드로이드 : 실행 "SU"나는 코드에서 쓰기 명령을 실행 붙어 있어요

  Process sh = Runtime.getRuntime().exec("su -c [command]"); 
      OutputStream os = sh.getOutputStream(); 

      String filePath = Environment.getExternalStorageDirectory().getPath(); 

      Toast.makeText(this, filePath+st+".jpg", Toast.LENGTH_SHORT).show(); 
      //os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII")); 
     // os.write(("/system/bin/screencap -p " + "\"/data/data/com.example.code/files/"+filePath+".png\"").getBytes("ASCII")); 
      os.write(("/system/bin/screencap -p " +filePath+st+".jpg").getBytes("ASCII")); 
      os.flush(); 
      os.close();  
      sh.waitFor(); 

과의 "SU"이진 파일을 배치/sdcard/Android/bin 폴더에 있습니다.

토스트 메시지 자체가 올라 오지 않습니다. 내 생각에,

+0

스스로 디버거 사용 방법을 배우십시오. 토스트는 앱을 디버깅하는 좋은 방법이 아닙니다. 충분한 정보가있는 곳이면 어디에서도 제공하지 않았습니다. 토스트가 표시되지 않으면이 코드 조각이 실행되지 않거나 충돌이 발생합니다. 어느 것? – Simon

+0

코드가 호출되고 있습니다.하지만 exec 앞에 토스트가 있으면 표시되지만 이후에는 표시되지 않습니다. –

답변

0

대답은 su가 Google에 의해 생성되지 않는다는 것입니다. 그리고 에뮬레이터는 원본이 아니라면 자바 코드가 su에 접근하는 것을 허용하지 않습니다. 그래도 내 장치로 잘 작동했습니다!