Как получить данные датчика от Датчика освещенности сразу при изменении в андроиде?

Что ж, я успешно получил значение освещения, однако оно ЧРЕЗВЫЧАЙНО задерживается. Приблизительно 3~5 секунд даже при использовании .SENSOR_DELAYED_FASTEST и даже при вводе 0 в качестве скорости. Это так медленно. У меня есть программа, проверяющая значения датчика освещенности на экране, а затем изменяющая яркость соответственно, НАДЕЯСЬ, что это решит ужасную автоматическую задержку яркости. но повозившись с ним, мне кажется, что это просто недоработка андроида. Он просто не может обновляться достаточно быстро. Я использовал getDefaultSensor(), но, согласно документации Android, это значение может быть отложено/отфильтровано, но после прочтения другого сообщения в stackoverflow getSensorList() и getDefaultSensor() возвращают те же значения, и что getSensorList() ничем не отличается от getDefaultSensor()

Причина моего вопроса: это правильно? Является ли Android просто ошибкой при немедленном обновлении? это забавно, потому что мой Windows MOBILE (не телефон) может обновляться немедленно, и мне это понравилось. но со всеми устройствами Android я видел то же самое. так это просто недостаток в программировании андроидов? Есть ли способ для меня, как разработчика приложений, исправить это? или нам с этим жить?


person Seth    schedule 08.05.2012    source источник


Ответы (2)


Насколько я знаю, вы не можете получить его быстрее. Пожалуйста, взгляните на этот вопрос и ответьте: https://stackoverflow.com/a/5060690/1381641

person Michał Cegielski    schedule 08.05.2012
comment
спасибо это уже видел. но на самом деле это ничего не прояснило, мой вопрос немного другой, я спрашиваю, это неисправный NDK андроида, из-за которого это длится вечно? Я помню, как читал, что некоторые перевели Android на C # (я счастлив), я предполагаю, что это ситуация, когда они пытались доказать, что Android слишком медленный. (Потому что это) - person Seth; 08.05.2012
comment
Частота опроса датчиков зависит не только от API Android, но и от самого датчика (например, акселерометр от данного провайдера может опрашивать значения каждые 6 мс, тогда как некоторые другие не могут делать это быстрее, чем каждые 15 мс). Также убедитесь (думаю, вы уже это сделали!), что это единственный зарегистрированный датчик, так как если вы зарегистрировали несколько, задержка опроса может быть одной из самых медленных. - person PeterGriffin; 09.05.2012
comment
Ах, да, это ответ, который я искал, спасибо, Грег. :) Но причина, по которой я обвиняю API Android, заключается в том, что мой HTC HD2 изначально является телефоном Windows Mobile, поэтому аппаратное обеспечение остается прежним, но ОС меняется. А когда в Windows Mobile 6.5.x опрос меняется через запись в реестре. И наименьшее значение, которое я мог изменить, было 1 мс, и он опрашивался с 1 мс, убивая батарею xD, поэтому я знаю, что датчик может легко опрашивать так быстро. И да, я зарегистрировал его только один раз. Спасибо за информацию :) - person Seth; 09.05.2012
comment
Таким образом, даже регистрация датчика освещенности ПРЯМО до того, как мне нужно получить значения, тоже не помогает: / все еще требуется ~ 3 секунды, чтобы обновить значения, а затем вернуть результаты. - person Seth; 09.05.2012

У меня нет решения вашей проблемы, но у меня есть объяснение. Датчик внешней освещенности имеет задержку из-за времени интеграции загрузки Sensor Box для Android из Playstore.

Вы получите идентификатор оборудования вашего датчика внешней освещенности, затем выполните поиск в Google, и вы получите PDF-файл с техническими подробностями об этом конкретном номере модели. Каждый телефон Android или IOS НЕ использует одно и то же оборудование.

В этом PDF вы получите время интегрирования. Он существует для того, чтобы регулировка яркости оставалась стабильной и отложенной, а также разумной. Если он низкий, и вы находитесь на дискотеке, уровень яркости будет продолжать мерцать. То же самое и снаружи, иногда некоторые тени заставляют его двигаться вверх и вниз, если время интегрирования мало. Он будет больше мерцать и не будет стабильным.

Это также повредит подсветке, поэтому вместо того, чтобы брать отдельные значения, они компилируют значения большого временного интервала. Мое время интеграции было 400 мс. Это значение отправляется процессору, после чего принимается решение.

Вы можете изменить это значение. Это легко, AMD сильно зависит от вашего опыта, например, чтобы обновить это, вам нужно запрограммировать блок ALS, открыв телефон, подключив к нему программатор и правильно подключив контакты. Затем отправка 8-битного сигнала, как указано в PDF (если модель программируется).

person ash hkz    schedule 20.10.2018