Можно ли получать обновления пульса от Androidwatch в моем приложении? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть приложение для Android, и я хочу считывать частоту сердечных сокращений с любых подключенных часов Android (Wear OS, Tizen и т. Д.).Возможно ли это без разработки носимого приложения?

Я пытался зарегистрировать слушателя на Sensor.TYPE_HEART_RATE, но я не вижу ни одного из 3 часов, которые у меня появляются (Ticwatch E, Ticband, Gear S2),Я гарантировал, что запрашиваю разрешение Manifest.permission.BODY_SENSORS.

sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager?

    heartRateSensor = sensorManager?.getDefaultSensor(Sensor.TYPE_HEART_RATE)

    val registered = sensorManager?.registerListener(this, heartRateSensor, SensorManager.SENSOR_DELAY_NORMAL)
    Log.i(TAG, if (registered!!) "Registered Listener" else "Failed to register listener")

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Я провел некоторые исследования с использованием часов Android Wear, Samsung Gear S2, фитнес-часов со случайным пульсом (Ticwatch) и автономного ремешка для измерения частоты пульса через Bluetooth.

Просто повторить, что моей целью было прочитать сердцеоцените данные с датчика часов через приложение для телефона, не создавая приложение для часов.

Мои выводы были следующими:

  1. Пример кода, который я разместил выше, был в моем приложении для телефона иSensorManager работает только с датчиками, встроенными в устройство.Например, если бы приложение работало на телефоне, я получал бы только датчики на телефоне, если бы на часах я получал те, что на часах.Это, очевидно, не сработало, так как датчики сердечного ритма не появлялись, если только у телефона его не было.Тот же код в приложении для часов работал, и я смог таким образом измерить частоту пульса.
  2. Используя API для фитнеса и Samsung Health API, я смог получать обновления в приложении для телефона, когда считывали частоту пульса.,Единственной проблемой этого решения было то, что вы не можете установить частоту показаний пульса.Чтобы продлить срок службы батареи, похоже, что большинство часов ограничивают интервал каждые 10 минут во время тренировки или каждые несколько секунд во время тренировки.Это также не сработало, так как мне нужно было больше частотных обновлений.
  3. Браслет-пульсометр с Bluetooth-гарнитурой был единственным, когда я мог измерить частоту пульса на нужной частоте.Для этого решения требовалось сопряжение с монитором, но это было простое соединение, и мне не нужно было разрабатывать приложения для часов!

Надеюсь, это проясняет, как SensorManager работает только с датчиками на устройстве, которым приложениеработает на.

0 голосов
/ 20 ноября 2018

Исходя из этих сообщений 1 и 2 , убедитесь, что ваше приложение определило и предоставило разрешение для датчиков тела.

Убедитесь, что:

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

присутствует в вашей одежде AndroidManifest.xml

Кроме того, убедитесь, что разрешение было предоставлено, проверив настройки разрешений на часах: Настройки -> Разрешения -> Ваше приложение

Вы можете проверить эту ссылку на GitHub , например.

...