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

如何在Android上编程设置、手动修改最近完全充电时间及adb原理?

Android 修改最近完全充电时间戳相关问题解答

是否可通过系统调用手动修改?

可以,但必须拥有系统级权限或root权限——这个时间戳属于系统核心设置项,普通第三方应用无权限直接修改。系统级应用(带系统签名)或已root的设备,可通过系统提供的设置API手动调用修改。

编程方式设置时间戳

系统签名应用实现

如果你的应用是系统签名应用,可直接通过Settings类修改:

import android.provider.Settings;
import android.content.ContentResolver;

// 获取ContentResolver实例
ContentResolver resolver = getContentResolver();
// 设置时间戳(此处以当前时间为例,单位为毫秒)
long timestamp = System.currentTimeMillis();
// 修改Global设置中的last_full_charge_time
Settings.Global.putLong(resolver, Settings.Global.LAST_FULL_CHARGE_TIME, timestamp);

需要在AndroidManifest.xml中声明权限:

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

Root设备上的普通应用实现

如果设备已root,普通应用可通过执行su命令调用系统设置工具修改:

try {
    // 执行su命令,调用settings工具修改值
    Process process = Runtime.getRuntime().exec("su");
    OutputStream outputStream = process.getOutputStream();
    long timestamp = System.currentTimeMillis();
    String command = "settings put global last_full_charge_time " + timestamp + "\n";
    outputStream.write(command.getBytes());
    outputStream.flush();
    outputStream.close();
    process.waitFor();
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}

ADB命令修改方式

同样需要设备已root或开启adb root权限,执行以下命令:

  1. 先获取root权限的adb shell:
adb root
  1. 修改时间戳(替换<timestamp>为目标毫秒级时间戳):
adb shell settings put global last_full_charge_time <timestamp>

注:部分Android版本中,该键可能存在于secure命名空间下,若上述命令无效,可尝试替换global为secure:

adb shell settings put secure last_full_charge_time <timestamp>

内容的提问来源于stack exchange,提问作者David Jonsson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:42:08