kidd3166 e3eb02df8a 1.4 update vor 2 Jahren
..
android e3eb02df8a 1.4 update vor 2 Jahren
example e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
imgs e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
ios e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
lib e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
test e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
.metadata e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
CHANGELOG.md e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
LICENSE e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
README.md e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren
pubspec.yaml e156ee634b 更换图片选择,我去掉一些crop cropper等库 vor 3 Jahren

README.md

pedometer

pub package

This plugin allows for continuous step counting and pedestrian status using the built-in pedometer sensor API of iOS and Android devices.

Permissions for Android

For Android 10 and above add the following permission to the Android manifest:

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

Permissions for iOS

Add the following entries to your Info.plist file in the Runner xcode project:

<key>NSMotionUsageDescription</key>
<string>This application tracks your steps</string>
<key>UIBackgroundModes</key>
<array>
    <string>processing</string>
</array>

Step Count

The step count represents the number of steps taken since the last system boot. On Android, any steps taken before installing the application will not be counted.

Pedestrian Status

The Pedestrian status is either walking or stopped. In the case that of an error, the status will be unknown.

Availability of Sensors

Both Step Count and Pedestrian Status may not be available on some phones:

  • It was found that some Samsung phones did not support Step Count or Pedestrian Status
  • Older iPhones did not support Pedestrian Status in particular

There is nothing we can do to solve this problem, unfortunately.

In the case that a sensor is not available, an error will be thrown. It is important that you handle this error yourself.

Example Usage

See the example app for a fully-fledged example.

Below is shown a more generalized example. Remember to set the required permissions, as described above.

  Stream<StepCount> _stepCountStream;
  Stream<PedestrianStatus> _pedestrianStatusStream;

  void onStepCount(StepCount event) {
    /// Handle step count changed
    int steps = event.steps;
    DateTime timeStamp = event.timeStamp;
  }

  void onPedestrianStatusChanged(PedestrianStatus event) {
    /// Handle status changed
    String status = event.status;
    DateTime timeStamp = event.timeStamp;
  }

  void onPedestrianStatusError(error) {
    /// Handle the error
  }

  void onStepCountError(error) {
    /// Handle the error
  }

  Future<void> initPlatformState() async {
    /// Init streams
    _pedestrianStatusStream = await Pedometer.pedestrianStatusStream;
    _stepCountStream = await Pedometer.stepCountStream;

    /// Listen to streams and handle errors
    _stepCountStream.listen(onStepCount).onError(onStepCountError);
        _pedestrianStatusStream
        .listen(onPedestrianStatusChanged)
        .onError(onPedestrianStatusError);
    
    ...
  }