11

I am making an Android app that needs to have the phone reboot or turn off when a button is clicked. Is this possible? Or will the phone require root access?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
IntelSoftApps
  • 1,161
  • 3
  • 14
  • 18
  • 2
    I am not sure if users appreciate that their device is suddenly reooting or stopping. We are talking about a mobile phone here and not a Windows PC. – Heiko Rupp Feb 11 '11 at 07:25
  • 1
    Yes.its mobile phone.haha and the reboot won't be suddenly they will know what will happen if they choose that button. – IntelSoftApps Feb 11 '11 at 08:47

3 Answers3

21

You can do that using android.os.PowerManager. Function reboot(String reason) is available, you need permission:

android.permission.REBOOT

Official site:

http://developer.android.com/reference/android/os/PowerManager.html#reboot(java.lang.String)

Of course, you are likely to get that permission only if your application is signed with the system signing key:

How to compile Android Application with system permissions

Community
  • 1
  • 1
Zelimir
  • 11,008
  • 6
  • 50
  • 45
2

I did this in my app by calling the method below.

Notes: 1. Make sure the phone is rooted 2. Allow the app in your root manager to automatically grant root permission.

    void reboot() {
        if (reboot) {

          try {
              Process proc = Runtime.getRuntime().exec(new String[]{"/system/bin/su", "-c", "reboot"});
              proc.waitFor();
          } catch (Exception ex) {
              Log.e(TAG, "Error ", ex);
          }

        }
  }
mboy
  • 744
  • 7
  • 17
1

If your device is rooted device then you can use below code.

Runtime.getRuntime().exec(new String[]{"/system/bin/su", "-c", "reboot now"});
Yogesh Rathi
  • 6,331
  • 4
  • 51
  • 81