2016-05-24 2 views
0

Я разрабатываю приложение для Android, чтобы отслеживать еду в течение дня. Мы еще не определились с тем, какие датчики использовать еще, поэтому приложение может подключаться ко всем датчикам из Сервиса и передавать их в течение неопределенного времени, в зависимости от того, когда телефон решает очистить ресурсы приложения. То, что я заметил во время тестирования надежности, заключается в том, что акселерометр и гироскоп вырезаются через две-три минуты, когда они оба передаются на средней или высокой частоте. Я реализовал поток тайм-аута, который проверяет последние полученные данные ускорения или гироскопа (в зависимости от того, предполагается ли их потоковая передача) и перезаписывает новые слушатели, если они прекратили потоковое вещание. Есть ли у кого-нибудь еще эта проблема и/или у кого-нибудь есть рекомендации по менее интенсивному аккумулятору для надежной потоковой передачи acc/gyro?Microsoft Band 2 Data прекращает потоковое вещание для акселерометра и гироскопа

Резюмируя:

  • Зарегистрированные акселерометр и гироскоп слушатели прекращают прием данных через 2-3 минуты
  • Это происходит только при потоковой передаче Разгона/гироскоп на средних и высоких частот настройки и только тогда, когда Accel и гироскопов оба потокового
  • Это происходит независимо от того, являются потоковыми другими датчики или не
  • исключения не отбрасываются, когда это происходит
  • Подстрочных ион/отписка, а также поступающие данные все обработана на новые темы
  • У меня есть Hacky тайм-аут поток, который отменяет регистрацию и регистрирует новые слушатель для разгона/гироскопа, если они перестают потоковом

Вопросов:

  1. Кто-нибудь еще сталкивается с этой проблемой?
  2. Есть ли проблема с использованием новых потоков для обработки данных, из-за которых слушатели будут незарегистрированы (маловероятно, потому что другие данные работают таким образом)?
  3. Есть ли лучший (более эффективный аккумулятор) способ обнаружения события, не возникающего и отвечающего на него, чем проверка потока на тайм-аут?

Заранее благодарен!

ответ

0

Четыре вещи.

1) Данные датчика гироскопа Microsoft Band на SDK включают данные акселерометра, поэтому вам не нужно подписываться на оба одновременно.

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

3) Для потоковой передачи требуется, чтобы соединение с BandService Microsoft Health оставалось активным. И если это соединение потеряно, вы больше не будете получать данные. (Вероятно, это то, что происходит в вашем случае)

4) Microsoft имеет API облаков, который может быть более полезен для того, что вы хотите сделать. http://developer.microsoftband.com/cloudAPI

+0

Благодарим вас за информативный ответ! Я рассмотрю API облака и проблему BandService (я знаю, где это исключение будет выбрано). Однако я смущен в первом пункте. У меня создалось впечатление, что вы можете получить угловую скорость или угловое ускорение от гироскопа, и я не могу найти его в документации. Можете ли вы указать мне на свой источник? Еще раз спасибо. –

0

Есть ли у вас какие-либо устройства, подключенные к вашему телефону через Bluetooth? Если да, попробуйте отключить все, кроме группы.

По моему опыту, наличие другого устройства в паре и общение с телефоном заставляет слушателей закрываться без предупреждения, часто требуя перезагрузки приложения или телефона. Мой телефон собирал данные с планшета и датчиков одновременно, и я обнаружил, что датчики будут длиться более 2-3 минут, если я вообще не подключусь к планшету.

Надеюсь, это поможет!

Смежные вопросы