2016-06-15 5 views
0

В настоящее время я разрабатываю приложение для регистрации, которое собирает данные датчиков как с смартфона, так и с помощью smartwatch. В приложении есть возможность установить частоту дискретизации. Все работает так, как предполагалось, когда оба устройства подключены, но когда часы отключены от него, образцы имеют гораздо более высокую скорость, чем указано. (Например, образцы смотреть на 100Гц при заповедано в 20Гц)Изменения скорости датчика износа в Android, когда включен режим «оставаться бодрствующим при зарядке»

На стороне часов, данные собираются через службу, которая приобретает частичную блокировку бодрствования:

mPowerManager = (PowerManager)getApplicationContext().getSystemService(Context.POWER_SERVICE); 
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); 
mWakeLock.setReferenceCounted(false); 
mWakeLock.acquire(); 

Я знаю, что указанная частота дискретизации при регистрации датчика слушателя является лишь рекомендацией к Android системы и зависит от аппаратного обеспечения:

mSensorManager.registerListener(WearSensorLogService.this, mAccelerometer, samplingRate); 

Однако, я могу повторить эту проблему путем активации «бодрствовать во время зарядки» установки по телефону (при подключении очевидно). Это заставляет меня казаться, что это решаемая проблема, и это проблема с какой-то настройкой мощности. Любая помощь приветствуется - сообщите мне, нужна ли дополнительная информация о приложении.

ответ

0

Исправлена ​​ошибка в том случае, если люди сталкиваются с подобной проблемой. Поворот наручных жестов в настройках смартвэка помог заставить часы собирать данные точно с требуемой частотой дискретизации.

Я думаю, что задача не в фокусе при создании жесты запястья была проблемой. Однако это странно, потому что все протоколирование выполняется через службу. Будет ли обновлять пост, если у меня есть какие-либо другие выводы.