Какова цель HKHealthStore.isHealthDataAvailable?

Для настройки HealthKit фреймворка Apple рекомендует следующий способ:

  1. Включите возможности HealthKit в Xcode.
  2. Проверьте, доступен ли HealthKit на устройстве, вызвав метод isHealthDataAvailable.
  3. Если HealthKit включен и доступен, создайте экземпляр объекта HKHealthStore.
  4. Запросить у пользователя разрешение на чтение и обмен HealthKit данными.

Мой вопрос связан с шагом номер 2.

HealthKit доступен как 8.0 и выше, и этот метод, конечно же, имеет такую ​​же доступность. В iPad, в котором HealthKit недоступен, если вы используете право HealthKit, iOS вообще не позволяет вам установить приложение.

В каких случаях этот метод может вернуть false?


person Javier Cadiz    schedule 24.12.2015    source источник


Ответы (2)


Обратите внимание, что вы можете установить приложение с инфраструктурой HealthKit на iPad. Чего вы не можете сделать, так это установить приложение, для которого HealthKit является обязательным требованием. По умолчанию, когда вы включаете HealthKit в XCode, он добавляет право, структуру и требование. Но вы можете изменить требование в .plist вашего приложения.

Зачем кому-то включать инфраструктуру HealthKit в приложение для iPad, особенно если у него нет доступа к хранилищу данных HealthKit? Основная причина, по которой я обнаружил, заключается в том, что вы можете использовать все форматирование единиц энергии, расстояния и веса, которое является частью структуры HealthKit.

Таким образом, isHealthDataAvailable, безусловно, желателен для универсальных приложений, которые используют HealthKit, но где хранилище HealthKit не всегда доступно.

person lehn0058    schedule 28.12.2015

Согласно обсуждению в документации, это для iPad, который, как вы упомянули, не имеет HealthKit. В магазине HealthKit-Apps все еще могут быть доступны для iPad, но не будут работать с этой функцией.

person Christian    schedule 24.12.2015