2012-05-25 63 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。除非您有固件密钥对其进行签名,否则无法重新启动无根据的电话。