reboot通知的回调函数

Android系统关机重启前的硬件操作处理指南
本文介绍了如何在Android设备关机或重启前通过register_reboot_notifier函数注册回调函数,以便执行硬件关闭相关操作。涉及代码实现和系统通知类型 SYS_DOWN、SYS_RESTART、SYS_HALT 和 SYS_POWER_OFF。

一、背景

        想在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 */

        以上仅为作为自己的备忘记录,以便后续用到时可以查阅,如果描述错误的地方,还请大神指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值