Сбой — пакет работоспособности не загружает данные ШАГА

#flutter #google-fit #google-fit-api #flutter-health

#сбой #google-fit #google-fit-api #флаттер-работоспособность

Вопрос:

Я использовал health-3.0.3 в своем приложении flutter для получения данных Google fit. Я могу получить все данные, кроме пошаговых данных, которые всегда показывают ноль.

Вы можете ознакомиться с пакетом работоспособности здесь Health 3.0.3 Flutter

Это блок кода для доступа к типу данных ШАГА в моем приложении

 List<HealthDataType> types = [
      HealthDataType.STEPS,
      HealthDataType.WEIGHT,
      //HealthDataType.HEIGHT,
    ];

    setState(() => _state = AppState.FETCHING_DATA);

    /// You MUST request access to the data types before reading them
    bool accessWasGranted = await health.requestAuthorization(types);

    double steps = 0;

    if (accessWasGranted) {
      try {
        /// Fetch new data
        List<HealthDataPoint> healthData =
            await health.getHealthDataFromTypes(startDate, endDate, types);

        /// Save all the new data points
        _healthDataList.addAll(healthData);
      } catch (e) {
        print("Caught exception in getHealthDataFromTypes: $e");
      }

      /// Filter out duplicates
      _healthDataList = HealthFactory.removeDuplicates(_healthDataList);

      /// Print the results
      _healthDataList.forEach((x) {
        print("Data point: $x");
        steps  = (x.value as double);
      });

      print("Steps: $steps");
 

Вы можете ознакомиться с полным кодом на вкладке примеры по данной ссылке. Кто-нибудь знает, что здесь не так?

Комментарии:

1. Вы подтвердили, что предоставленный доступ соответствует действительности, используя режим отладки, и количество шагов отображается в приложении GoogleFit правильно?

2. Доступ был предоставлен всегда ложным при любом обновлении

3. У меня такая же проблема. Вы нашли решение?

4. Да, для accessWasGranted установлено значение true, и данные о шагах отображаются правильно в Google Fit

5. @WaiKyaw Нет, пока нет

Ответ №1:

здоровье: 3.0.4 более стабильно, когда я пишу этот ответ.

С Android 10. вы должны добавить ACTIVITY_RECOGNITION для получения разрешения на подсчет ШАГОВ AndroidManifest.xml .

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

А затем с помощью permission_handler запрашивает разрешение.

 if (Platform.isAndroid) {
  final permissionStatus = Permission.activityRecognition.request();
  if (await permissionStatus.isDenied ||
      await permissionStatus.isPermanentlyDenied) {
    showToast(
        'activityRecognition permission required to fetch your steps count');
    return;
  }
}
 

Комментарии:

1. Этот ответ очень помог, спасибо.