You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 12+有系统权限应用如何编程实现设备关机?

新版本Android设备上实现系统应用低电量自动关机的可行方案

问题原因说明

  • android.intent.action.ACTION_SHUTDOWN是系统内部广播,仅用于通知应用系统即将关机,应用无法主动发送该广播触发关机,因此会抛出权限异常。
  • reboot -p命令失效通常是因为不同厂商定制系统对Root命令的支持存在差异,或是su执行环境的路径、权限配置问题。

方案一:调整Root命令执行方式(最通用)

不同设备的关机命令可能存在差异,尝试以下几种有效命令,并确保正确执行Root命令:

  • 可选命令:
    1. su -c 'poweroff'
    2. su -c 'shutdown -h now'
    3. su -c '/system/bin/reboot -p'(指定完整路径避免环境变量问题)

执行命令的代码示例(需处理流避免进程阻塞):

public void shutdownWithRoot() {
    String[] commands = {"/system/bin/su", "-c", "poweroff"};
    try {
        Process process = Runtime.getRuntime().exec(commands);
        // 必须读取并关闭输入流、错误流,否则进程可能阻塞无响应
        process.getInputStream().close();
        process.getErrorStream().close();
        process.waitFor();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

提示:部分设备的su路径可能为/su/bin/su,可先通过which su命令确认路径后替换。

方案二:利用系统应用权限调用PowerManager API

若你的应用是系统签名应用(已预装为系统应用且使用平台签名),可直接调用系统API触发关机:

  1. 在AndroidManifest.xml中添加系统权限:
<uses-permission android:name="android.permission.SHUTDOWN" />
  1. 调用PowerManager的关机方法:
public void shutdownWithSystemApi(Context context) {
    PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    if (powerManager != null) {
        // 参数说明:是否需要用户确认关机,是否等待所有后台进程结束
        powerManager.shutdown(false, true);
    }
}

此方法无需Root,但要求应用必须是系统签名应用,普通Root应用无法使用。

方案三:操作sysfs节点(需Root)

部分设备支持直接写入sysfs节点触发关机,执行命令:

su -c 'echo shutdown > /sys/power/state'

代码示例:

public void shutdownWithSysfs() {
    String[] commands = {"/system/bin/su", "-c", "echo shutdown > /sys/power/state"};
    try {
        Process process = Runtime.getRuntime().exec(commands);
        process.getInputStream().close();
        process.getErrorStream().close();
        process.waitFor();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

提示:不同设备的sysfs路径可能不同,若/sys/power/state无效,可尝试/sys/power/shutdown等替代路径。


内容的提问来源于stack exchange,提问作者Charles Semaan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 04:05:32