Garmin-Watchface: как показать Heartrate? - PullRequest
1 голос
/ 11 июля 2019

В виде циферблата я создал, какой ConnectIQ (4.30) я могу показать время, но когда я пытаюсь показать сердечный ритм, я получаю ошибку

Подробности: модуль 'Toybox.Sensor' недоступен для 'Watch Face'

Stack: - onStart () в /Users/…/source/_garmin_projectAPP.mc:13 0x10000095 Требуется разрешение

В манифесте я добавил все доступные разрешения, я также импортировал датчик с

с использованием Toybox.Sensor

Я также не уверен, где именно включить датчик сердечного ритма, например,

Sensor.setEnabledSensors([Sensor.SENSOR_HEARTRATE]);
Sensor.enableSensorEvents(method(:onSensor));

Я пытался использовать метод initialize() и onStart(state), но все равно получаю ошибку, показанную выше.

1 Ответ

1 голос
/ 15 июля 2019

Приложения CIQ типа «циферблат» не имеют доступа к датчикам таким образом. Вместо этого вам нужно использовать методы, доступные в модулях Activity и / или ActivityMonitor.

Если устройство наблюдения новее, оно, вероятно, будет поддерживать вызов этого метода, который возвращает значение частоты пульса, которое обновляется каждую секунду:

Activity.getActivityInfo().currentHeartRate()

В противном случае вы можете вызвать этот метод и использовать самое последнее значение, которым будет частота сердечных сокращений за последнюю минуту:

ActivityMonitor.getHeartRateHistory()

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

...