2013-07-13 47 views
0

我堅持在代碼執行寫命令:安卓:執行「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(); 

我已經安裝了SuperUser.apk並放置在「蘇」的二進制文件中/ sdcard/Android/bin文件夾。

Toast消息本身不會出現。我猜,

+0

請幫幫忙,學習如何使用調試器。 Toast不是調試應用程序的好方法。你沒有提供足夠的信息。如果吐司沒有顯示,那麼這段代碼永遠不會執行,或者你有崩潰。哪一個? – Simon

+0

代碼正在調用..但是,如果在執行前有一個Toast,它會顯示,但不會在之後.. –

回答

0

答案是su不是由google生成的。如果模擬器不是原創的,那麼仿真器不會允許java代碼訪問su。它雖然與我的設備很好地工作!

相關問題