如何以编程方式关闭有根电话?

时间:2014-03-11 12:22:03

标签: android

我想以编程方式为我的设备供电我的手机已植根但这个命令不是我设备的电源有什么不对?

            button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
               Process chperm;
                try {
                    chperm=Runtime.getRuntime().exec("su");
                      DataOutputStream os = 
                          new DataOutputStream(chperm.getOutputStream());

                          os.writeBytes("reboot -p\n");
                          os.flush();



                         chperm.waitFor();

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } 
                    catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }   
        }
    });

如何以编程方式关闭设备电源?

3 个答案:

答案 0 :(得分:1)

希望它对你有用。

Intent shutdown = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
    shutdown.putExtra("android.intent.extra.KEY_CONFIRM", false);
    shutdown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    thisActivity.startActivity(shutdown);

答案 1 :(得分:1)

这实际上是来自stackoverflow的答案,它自己在另一个线程中。 Programmatically switching off Android phone

try {
    Process proc = Runtime.getRuntime()
                    .exec(new String[]{ "su", "-c", "reboot -p" });
    proc.waitFor();
} catch (Exception ex) {
    ex.printStackTrace();
}

答案 2 :(得分:0)

要使用此代码,您需要超级用户!适用于4.0及以上版本!

 Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
            i.putExtra("android.intent.extra.KEY_CONFIRM", false);
            i.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(i);