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

sensors_plus 6.1.1版本iOS端无法监听UserAccelerometerEvent事件且无错误抛出求助

sensors_plus 6.1.1版本iOS端无法监听UserAccelerometerEvent事件且无错误抛出求助

兄弟我之前踩过iOS端sensors_plus传感器监听没反应的坑,完全懂你这种“没报错但就是不干活”的憋屈!给你整理几个必查的点,应该能解决问题:

  • 先补全iOS权限配置,这是最容易踩的坑
    iOS对运动传感器有严格的权限管控,如果你的Info.plist里没加NSMotionUsageDescription,系统会直接静默拒绝App访问传感器,而且不会抛出任何错误。你得打开项目的ios/Runner/Info.plist,添加以下配置:

    <key>NSMotionUsageDescription</key>
    <string>需要访问运动数据以追踪您的步数</string>
    

    描述文案可以根据你的App功能修改,关键是必须加这个键值对。

  • 检查你的订阅代码是否规范
    看你贴的代码好像没写完,给你补全正确的订阅逻辑,还要确保加上错误回调(说不定之前错误被吞了),另外别忘了解散订阅:

    class AppStepsTracker with ChangeNotifier {
      StreamSubscription<UserAccelerometerEvent>? _streamSubscriptions;
    
      int _steps = 0;
      String? _error;
    
      int get steps => _steps;
      String? get error => _error;
    
      void initiate() {
        // 先取消旧订阅,避免内存泄漏
        _streamSubscriptions?.cancel();
        // 正式订阅事件,同时加上错误监听
        _streamSubscriptions = userAccelerometerEvents.listen(
          (UserAccelerometerEvent event) {
            // 这里写你的步数计算逻辑,比如根据x/y/z轴数据更新_steps
            // 举个简单的触发示例:
            if (event.z.abs() > 1.5) {
              _steps++;
              notifyListeners();
            }
          },
          onError: (err) {
            _error = err.toString();
            notifyListeners();
          },
          cancelOnError: false,
        );
      }
    
      @override
      void dispose() {
        _streamSubscriptions?.cancel();
        super.dispose();
      }
    }
    

    重点是要确保onError回调加上,这样哪怕有隐藏错误也能捕捉到,不会完全摸瞎。

  • 检查设备的系统权限开关
    有时候用户可能不小心在系统设置里关掉了App的运动权限,你可以让测试的用户去「设置->隐私与安全性->运动与健身」里,确认你的App是被允许访问的。这个开关关了的话,传感器事件也完全不会触发。

  • 务必用真机测试,别依赖模拟器
    iOS模拟器的传感器模拟非常拉胯,很多时候不会真实触发UserAccelerometerEvent事件,一定要拿真实的iOS设备来测试,这也是很多人忽略的点。

  • 清理缓存重新集成依赖
    可以试试删除iOS目录下的Podfile.lock和Pods文件夹,然后执行flutter clean,再重新运行flutter pub get和cd ios && pod install,有时候依赖缓存冲突也会导致这种诡异的问题。

备注:内容来源于stack exchange,提问作者CCP

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:33:40