思路来自网络!
1、需要源码才能编译
2、修改项目的Android.mk文件,添加
LOCAL_CERTIFICATE := platform
3、AndroidManifest.xml中添加权限
3.1 manifest标签中添加
android:sharedUserId="android.uid.system"
3.2 使用权限
<uses-permission android:name="android.permission.SHUTDOWN"/>
4、java代码
- // 创建Intent
- // 如果是要重启,则使用Intent.ACTION_REBOOT
- Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
- // 设置是否需要用户确认,若不需要,可以不设置或设置为false
- intent.putExtra(Intent.EXTRA_KEY_CONFIRM, true);
- // 当作新任务执行
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- // 启动
- startActivity(intent);
据说还可以使用Broadcast的方式调用,不过我试了一下,窗口是出来了,但一直停在关机的进度条那。不知道是不是机子的问题。
代码如下:
- Intent i = new Intent(Intent.ACTION_REBOOT);
- i.putExtra("nowait", 1);
- i.putExtra("interval", 1);
- i.putExtra("window", 0);
- sendBroadcast(i);