本文原创:转载请注明出处!
http://blog.csdn.net/adroitly/article/details/28444385
前几天朋友叫我帮他弄个Android自动开关机的,让它平时好好的管理 自己的手机,当时没多想就说,行给我点时间,谁知道查了才知道原理关机和重启实现比较简单,但是开机就不知道怎么说了!因为真的是需要底层的实现,对我这个只会应用的人来说怎么可能做到啊!然后再去看看Android市场,真正实现自动开关机的都是假的,关机只是飞行而已,朋友说的要关机,没办法,只能硬来!
很多人都想到用AlarmManager我也怎么想的,但是实现不了,原因很简单,我不会签名!
开机的实现:
start_am = (AlarmManager)getSystemService(ALARM_SERVICE);
start_pi = PendingIntent.getActivity(this, 0, new Intent(this, Arm_Start_Receiver.class), Intent.FLAG_ACTIVITY_NEW_TASK);
start_am.setInexactRepeating(AlarmManager.RTC_WAKEUP , Start_time, 1000 * 60 * 60 * 24, start_pi);
别急,上面的只是一个定时而已!
真正的开机用:
Intent i = new Intent(Intent.ACTION_REBOOT);
i.putExtra("nowait", 1);
i.putExtra("interval", 1);
i.putExtra("window", 0);
this.sendBroadcast(i);
再说关机吧!
Process process;
try {
process = Runtime.getRuntime().exec("su");
DataOutputStream out = new DataOutputStream(
process.getOutputStream());
out.writeBytes("reboot -p\n");
out.writeBytes("exit\n");
out.flush();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
再说重启:
try {
proc = Runtime.getRuntime().exec("su -c \"/system/bin/reboot\"");
proc.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
至于我不会签名也能开机嘛,这个我是如何做到的保密啊!总之有办法就是了!
最后我想跟你说!对于上面的代码,重启和开机我都用root去实现的哦!怕被root不安全的别试啊!
源码我就不上传了!