You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Cordova/PhoneGap检测安卓手机解锁事件并启动计时器?

安卓解锁事件检测+计时器启动的Cordova实现方案

当然能搞定!你要的「用户解锁安卓手机时启动计时器」需求,用Cordova完全可以实现,我给你整理了一套具体的落地方案:

1. 先装个能监听系统广播的插件

安卓的解锁事件对应系统的ACTION_USER_PRESENT广播,我们需要用cordova-plugin-broadcast-receiver来监听这个广播。打开终端,在你的Cordova项目根目录下执行:

cordova plugin add cordova-plugin-broadcast-receiver

2. 给安卓配置权限和接收器

找到你项目里的platforms/android/app/src/main/AndroidManifest.xml,添加下面的权限和广播接收器声明——这一步是让系统允许我们接收解锁事件:

<!-- 添加必要权限 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<!-- 声明监听解锁事件的接收器 -->
<receiver android:name="cordova.plugin.broadcastreceiver.BroadcastReceiver">
    <intent-filter>
        <!-- 目标就是这个解锁事件的Action -->
        <action android:name="android.intent.action.USER_PRESENT" />
    </intent-filter>
</receiver>

3. 写JS代码监听事件+启动计时器

在你的应用主JS文件(比如www/js/index.js)里,加上这段逻辑——等设备就绪后注册广播监听,一旦检测到解锁就启动计时器:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    // 拿到广播接收器的实例
    const broadcastReceiver = cordova.plugins.broadcastReceiver;

    // 注册监听解锁事件
    broadcastReceiver.register(
        function(intent) {
            console.log("用户解锁屏幕啦!启动计时器~");
            // 这里调用你的计时器启动函数
            startTimer();
        },
        function(error) {
            console.error("注册监听失败:", error);
        },
        ["android.intent.action.USER_PRESENT"] // 指定要监听的系统广播
    );
}

// 示例计时器函数,你可以根据需求修改
function startTimer() {
    let elapsedSeconds = 0;
    const timer = setInterval(() => {
        elapsedSeconds++;
        console.log(`计时器已运行 ${elapsedSeconds} 秒`);
        // 这里可以加更新UI的逻辑,比如把时间显示在页面上
    }, 1000);
}

额外提示

  • 这个方案只适配安卓平台,iOS的锁屏/解锁逻辑不一样,如果需要支持iOS得单独处理,但你的需求是安卓端,完全够用。
  • 测试的时候把应用后台挂着,锁屏再解锁,就能在控制台看到计时器启动的日志了。
  • 如果希望应用被杀死后还能监听解锁事件,得搭配后台保活插件(比如cordova-plugin-background-mode),不过一般正常使用场景下,上面的方案就足够了。

内容的提问来源于stack exchange,提问作者Caolán Maguire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:35:30