我正在开发一个应用程序,如果手机具有root访问权限,该应用程序将完全接管它。该应用程序以设定的间隔拍摄照片,并将其上传到ftp服务器。它的使用案例是将旧手机转变为安全摄像头,或者用于一般的时间流逝摄影。我也在努力节省尽可能多的电量,这样手机就可以通过太阳能USB充电器在偏远地区使用。
理想情况下,电话应该每隔一分钟左右使用setAndAllowWhileIdle()唤醒一次,拍照,然后进入睡眠状态。一旦每拍摄x张照片,它就会关闭飞行模式,连接到互联网,上传照片,打开飞行模式。
我的问题是,一旦我使用"dumpsys -idle“命令强制手机进入睡眠模式,setAndAllowWhileIdle()就会变得非常不准确。在接下来的20秒内设置的闹钟甚至可以在15分钟后到达。
我想知道是否有任何方法可以以root身份将空闲维护窗口设置为我想要的任何时间间隔,以便我可以在合理的时间获得警报。或者是否有任何其他方法作为root来获得可靠的警报(可靠,如分钟精度)。或者我是否可以将整个电话挂起一段时间。
发布于 2020-06-20 19:38:31
好的,经过大量的阅读和实验,我找到了神奇的解决方案。这并不完全是我想要的,因为我不能只允许我的应用程序更频繁地在打瞌睡模式下唤醒。我只能在全球范围内更改它,所以所有的应用程序都可以这样做。但由于我的特定需求,我可以删除所有不需要的应用程序,它工作得很好。
解决方案是:"su -c settings put global alarm_manager_constants allow_while_idle_long_time=20000,allow_while_idle_whitelist_duration=30000“
其他的报警设置可以通过这种方式修改,你可以通过做一个“哑巴报警”来查看它们。
https://stackoverflow.com/questions/62447264
复制相似问题