微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计步器中的计步器包装不适用于某些设备

如何解决计步器中的计步器包装不适用于某些设备

我在Flutter应用程序中使用了计步器软件包版本^ 1.2.0,我注意到它不适用于某些设备,例如Samsung A30和其他设备,我使用的版本不需要任何权限,并且可以在我的设备上使用设备OPPO F7(使用Android 10),这是什么问题?

这是代码

StreamSubscription<int> _subscription;
Box<int> stepsBox = Hive.Box('steps');
int todaySteps;

@override
void initState() {
 super.initState();
 startListening();
}

@override
void dispose() {
 stopListening();
 super.dispose();
}

void startListening() {
_pedometer = pedometer();
_subscription = _pedometer.pedometerStream.listen(
  getTodaySteps,onError: _onError,onDone: _onDone,cancelOnError: true,);
}

void _onDone() => print("Finished pedometer tracking");
void _onError(error) => print("Flutter pedometer Error: $error");

Future<int> getTodaySteps(int value) async {
print(value);
int savedStepsCountKey = 999999;
int savedStepsCount = stepsBox.get(savedStepsCountKey,defaultValue: 0);

int todayDayNo = Jiffy(DateTime.Now()).dayOfYear;
if (value < savedStepsCount) {
  // Upon device reboot,pedometer resets. When this happens,the saved counter must be reset as well.
  savedStepsCount = 0;
  // persist this value using a package of your choice here
  stepsBox.put(savedStepsCountKey,savedStepsCount);
}

// load the last day saved using a package of your choice here
int lastDaySavedKey = 888888;
int lastDaySaved = stepsBox.get(lastDaySavedKey,defaultValue: 0);

// When the day changes,reset the daily steps count
// and Update the last day saved as the day changes.
if (lastDaySaved < todayDayNo) {
  lastDaySaved = todayDayNo;
  savedStepsCount = value;

  stepsBox
    ..put(lastDaySavedKey,lastDaySaved)
    ..put(savedStepsCountKey,savedStepsCount);
}

setState(() {
  todaySteps = value - savedStepsCount;
});
stepsBox.put(todayDayNo,todaySteps);
return todaySteps; // this is your daily steps value.
}

void stopListening() {
 _subscription.cancel();
}

解决方法

我认为在这种情况下,最好直接在lib存储库中提出问题,然后再提出问题。 https://github.com/cph-cachet/flutter-plugins/issues

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?