如何解决计步器中的计步器包装不适用于某些设备
我在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 举报,一经查实,本站将立刻删除。