2012-05-25 203 views
1

我想,當我按下button.For,我使用android2.3.3爲開發這個應用程序在emulator.I'm寫這些..重新啓動android手機(模擬器)?

 PowerManager pm; 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main);   
      pm = (PowerManager) getSystemService(Context.POWER_SERVICE);   
      Button test = (Button) findViewById(R.id.button1); 

      test.setOnClickListener(new OnClickListener() {   
     public void onClick(View v) { 

      try { 
       Process proc = Runtime.getRuntime().exec(new String[] {"su", "-c", "reboot" }); 

          int result = proc.waitFor(); 
       Toast.makeText(ForTestActivity.this, "INt:"+result, Toast.LENGTH_SHORT).show(); 


      } catch (Exception ex) { 
       Log.i("XXXXXXXXXXXX", "Could not reboot", ex); 
      } 

     } 
    }); 

} 

這不是工作重新啓動手機。 按下按鈕後,它不會發生任何錯誤,也不會發生任何事情。 烤麪包片被顯示的結果1

之後,我嘗試這種代碼也..

 Process p = Runtime.getRuntime().exec("su"); 
       DataOutputStream os = new DataOutputStream(p.getOutputStream());    
       os.writeBytes("reboot"+"\n");        
       os.writeBytes("exit\n"); 
       os.flush(); 

同result.I添加有任何想法,必要的權限also.Is人嗎?

[不知怎的,我要重新啓動(或關閉)手機上按後按A鈕。]

+0

我認爲設備需要擁有root權限...... –

回答

1

您是否嘗試了上述命令而沒有「su -c」?

當我鍵入「亞行外殼重啓」我的手機重新啓動(但我的手機是紮根這是在這種情況下,需要),所以我想效果應該是類似的,如果你只是執行「重啓」的代碼。我認爲「su -c」是不必要的,因爲你已經擁有根權限的root權限(IIRC模擬器默認爲root)。

正如其他人所說,這不適用於無根電話。

1

類似的問題被提出和回答here。除非您有固件密鑰對其進行簽名,否則無法重新啓動無根據的電話。