发布网友 发布时间:2022-04-26 10:04
共2个回答
热心网友 时间:2022-06-27 03:49
主要思路: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);
10-22 10:02 回答curie_871073
热心网友 时间:2022-06-27 03:49
在mainactivity里面设置onReboot方法
方法内容如下:
public void onReboot(View v){ try { Runtime.getRuntime().exec("su -c \"/system/bin/shutdown\""); } catch (IOException e) { e.printStackTrace(); } }
Runtime.getRuntime().exec("su -c \"/system/bin/shutdown\"");这条命令是关机的命令
Runtime.getRuntime().exec("su -c \"/system/bin/reboot\"");
这条名利是手机重启
这两句代码是关机和重启的核心的代码