安卓系统如何安排设备从睡眠状态唤醒?

3
使用AlarmManager时,Android设备可以在某个时间从睡眠中唤醒。Android是如何在较低级别上安排唤醒的呢?
我尝试使用rtcwake,但它失败了,显示“rtcwake:/dev/rtc0未启用唤醒事件”(即使我强制rtcwake继续并进行必要的ioctls,我仍然看不到设备按时被唤醒)。
Android使用哪些系统调用来设置闹钟,我该如何从控制台自己执行这些调用?
1个回答

4

Android使用/dev/alarm设备设置能够从挂起状态唤醒系统的闹钟。 它可以使用ioctl从JNI访问此设备。请参见frameworks/base/services/jni/com_android_server_AlarmManagerService.cpp文件。 Android独占该设备,据我所知,仅可通过AlarmManager服务从Java获得接口。 如果您需要在Java级别设置这些闹钟,可以使用getSystemservice(ALARM_SERVICE)获取对该服务的访问权限;从本地代码访问有一点棘手,我目前也面临同样的问题。我需要在本地进程中设置闹钟,并使用套接字与Java服务进行通信以安排闹钟。这可能不是您要寻找的答案,但我想分享我的经验。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接