我将智能手机连接到太阳能充电器。 白天,它正确供电。但是在夜晚,由于缺乏能量,它有时会自动关闭。
我的问题是:当电池电量超过一定百分比时,可以将其重新打开(以编程方式)? 我正在寻找一种干净合法的方式。我对缺陷或漏洞不感兴趣。 我在官方文档中找不到任何内容。谢谢。
答案 0 :(得分:6)
执行此操作的机制依赖于更换电池动画脚本,该脚本在设备关闭但插入时运行,通常显示充电电池的图标。脚本的名称因设备而异,但通常位于Array
(
[sets] => Array
(
[0] => stdClass Object
(
[name] => test 1
)
[1] => stdClass Object
(
[name] => test 2
)
[2] => stdClass Object
(
[name] => test 3
)
)
)
目录中。三星设备通常会调用脚本/system/bin
,我见过的脚本的其他名称包括playlpm
,ipod
和lpm
。这不一定适用于每个设备,因为这远远超出了标准的Android框架 - 某些设备可能没有相应的脚本,或者它们可能以不同的方式实现它。
这可以被描述为“漏洞利用”,因为它需要root并且在Linux级别而不是Android框架级别工作,但目前没有其他方法可以实现此行为。
此处描述了进行此更改的一般机制:https://android.stackexchange.com/questions/20021/automatically-power-on-android-when-the-charger-is-connected。当然,在执行任何此操作之前,最好备份之前的电池动画脚本。
以下脚本适用于多种设备(多个Samsung设备和Verizon Ellipsis 7)。基本上,它会检查手机是否已插入交流电源并且电量是否充足。如果是这样,它会启动。如果没有,它等待N秒并再次尝试。作为副作用,原始电池动画脚本将无法运行,您将永远不会看到漂亮的充电动画。
battery_charging
答案 1 :(得分:2)
我没有一个不依赖硬件的解决方案,也不涉及设备的生根。
这个答案只是为了澄清一些误解。
"设备已关机,无法在其上运行任何类型的软件"
这既是真的,也是假的。首先,没有任何现代设备能够真正脱离"关闭。有时,关闭按钮仅用于显示(例如您的电视)。有时处理器确实断电,但主板上的附加电路仍然以涓流电流供电。其次,该附加电路可以在某些情况下为处理器和其他电路供电,例如在某些外部事件上唤醒(例如插入充电线),或者当处理器外定时器达到零时。
真正关闭现代设备(如智能手机)的唯一方法是取下电池和电源线。即使有时也不能像小电池那样工作,或者母板上可能存在低漏电容,以保持一些工作状态。
答案 2 :(得分:1)
在没有设备生根的情况下无法实现
答案 3 :(得分:0)
如果设备断电,则无法在其上运行任何类型的软件。
答案 4 :(得分:0)
启动设备是一项硬件任务,必须有物理电源才能运行设备(此处按下电源按钮)。那么你不能用代码做到这一点。应该有一种体力。
答案 5 :(得分:-1)
上次我检查生根是"合法"并且必须这样做。
例如,此文件#include <type_traits>
#include <utility>
template <typename T>
using has_s_t = decltype(std::declval<T>()->s);
template <typename RandomIt>
void some_process(RandomIt first, RandomIt last)
{
static_assert(std::is_detected_v<has_s_t, RandomIt>,
"Iterator must point to an object with member `s`");
}
可能位于您的设备上。编辑它以包含
/system/bin/battery_charging
并设置一些权限
#!/system/bin/sh
/system/bin/reboot