2012-05-25 5 views
1

Я хочу, чтобы перезагрузить мобильный телефон, когда я нажимаю button.For, что я написал этот ..Перезапустите 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); 
      } 

     } 
    }); 

} 

Это не работает в emulator.I'm с использованием android2.3.3 для разработки этого приложения. Это не дает никаких ошибок, и ничего не произошло после того, как я нажму кнопку. Тост показывал результат в виде 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 кто-то, имеющий какие-либо идеи?

[Как-то я хочу, чтобы перезапустить (или Shutdown) телефон после того, как нажать на кнопку.]

+0

Я думаю, что устройство должно обладать правами root ... –

ответ

1

Вы пробовали вышеуказанную команду без «su -c»?

Когда я типа «ADB перезагрузка оболочки» мой телефон перезагружается (но мой телефон коренится, которая необходима в данном случае), поэтому я думаю, что эффект должен быть похож, если вы просто выполнить «перезагрузку» из кода. Я думаю, что «su -c» не требуется, поскольку у вас есть права root на корневом телефоне (эмулятор IIRC коренится по умолчанию).

Как уже упоминалось, это не будет работать на некорневом телефоне.

1

Аналогичный вопрос был задан вопрос и ответил here. Вы не можете перезагрузить неподдерживаемый телефон, пока у вас нет ключа прошивки, чтобы его подписать.

Смежные вопросы