一、背景
想在android系统关机或重启前做一些硬件关闭相关的处理。
二、处理方案
通过register_reboot_notifier函数注册reboot回调函数,然后可以在回调函数里处理一些硬件关闭的事情。
三、代码实现
1、添加头文件
#include <linux/reboot.h>
2、注册回调函数notify
struct notifier_block reboot_notif;
reboot_notif.notifier_call = reboot_notifier_callback;
ret = register_reboot_notifier(&reboot_notif);
if (ret)
pr_err("Unable to register reboot_notifier: %d\n", ret);
3、定义notify函数
static int reboot_notifier_callback(struct notifier_block *self,
unsigned long event, void *data)
{
// TODO
pr_info("do sth when reboot.\n");
return 0;
}
则关机或重启时就会回调reboot_notifier_callback函数,可在回调函数里做重启前的相关操作。
其中,通知类型包括:
#define SYS_DOWN 0x0001 /* Notify of system down */
#define SYS_RESTART SYS_DOWN
#define SYS_HALT 0x0002 /* Notify of system halt */
#define SYS_POWER_OFF 0x0003 /* Notify of system power off */
以上仅为作为自己的备忘记录,以便后续用到时可以查阅,如果描述错误的地方,还请大神指点。
Android系统关机重启前的硬件操作处理指南
本文介绍了如何在Android设备关机或重启前通过register_reboot_notifier函数注册回调函数,以便执行硬件关闭相关操作。涉及代码实现和系统通知类型 SYS_DOWN、SYS_RESTART、SYS_HALT 和 SYS_POWER_OFF。
267

被折叠的 条评论
为什么被折叠?



