Перезагрузить андроид телефон (эмулятор)?

1

Я хочу перезагрузить мобильный телефон, когда нажимаю кнопку. Для этого я написал это.

        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);
            }

        }
    });

} 

Это не работает в эмуляторе. Я использую 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(); 

Тот же результат. Я добавил необходимые разрешения также. У кого-то есть какая-то идея?

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

  • 0
    Я думаю, что устройство должно иметь права root ...
Теги:
android-emulator

2 ответа

1
Лучший ответ

Вы пробовали эту команду без "su -c"?

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

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

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню