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

Flutter前台服务中pedometer的stepCountStream手机休眠时无回调

解决Android休眠时Flutter Pedometer包无法触发步数回调的问题

你的前台服务定时器在休眠时正常运行,说明服务本身没问题,问题出在Android系统对步数传感器的休眠限制上,结合华为P9 Lite(Android7.0)的特性,试试以下方案:

1. 关闭华为设备的应用省电限制

华为自带的省电策略会在屏幕休眠时限制传感器后台活动,手动配置步骤:

  • 打开「设置」→「电池」,关闭「省电模式」或「超级省电」
  • 进入「应用启动管理」,找到你的应用,切换为「手动管理」,勾选「允许后台活动」
  • 进入「电池优化」,找到应用并设置为「不允许优化」

2. 配置传感器唤醒标记与WakeLock

普通步数传感器在屏幕休眠时会被系统暂停,需要使用支持唤醒的传感器类型:

  • 如果pedometer包支持自定义传感器配置,确保注册时添加SENSOR_FLAG_WAKE_UP标记,强制传感器在休眠时仍能触发事件
  • 若包不支持,可通过MethodChannel调用Android原生Sensor API:
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor stepCounter = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
// 注册带唤醒标记的传感器监听
sensorManager.registerListener(stepListener, stepCounter, SensorManager.SENSOR_DELAY_NORMAL, SensorManager.SENSOR_FLAG_WAKE_UP);
  • 同时在前台服务中持有Partial WakeLock,保证CPU休眠时仍能处理传感器事件:
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::StepLock");
wakeLock.acquire();

记得在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

3. 调整传感器监听的注册时机

延迟注册pedometer stream,确保前台服务完全初始化完成:

Future<void> activatePedometer(ServiceInstance service) async {
  // 延迟2秒等待服务稳定
  await Future.delayed(const Duration(seconds: 2));
  Stream<StepCount> pedometerStream = Pedometer.stepCountStream;
  var subscription = pedometerStream.listen((stepCount) async {
    print("STEP DATA LISTENED!!!");
  });
  Timer.periodic(const Duration(seconds: 1), (timer) async {
    print('TIMER: ${DateTime.now()}!!!');
  });
}

4. 核对Manifest权限

确保已添加必要的传感器权限:

<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-feature android:name="android.hardware.sensor.stepcounter" />
<uses-feature android:name="android.hardware.sensor.stepdetector" />

内容的提问来源于stack exchange,提问作者Mustafa Karakuş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:22:29