Таким образом, в Android JAVA SDK есть средства для объединения датчиков. Он может комбинировать показания гироскопа и акселерометра для создания надежного вектора силы тяжести. Это отображается в API с типом сенсора TYPE_GRAVITY.
Теперь NDK также поддерживает датчики, например, вот пример приложения NDK, которое считывает показания акселерометра с частотой 60 Гц: Исходный код NativeActivity
Однако, судя по исходному коду датчика.h, NDK позволяет мне генерировать только следующие типы датчиков:
- Акселерометр
- Магнитное поле
- Гироскоп
- Свет
- Близость
Таким образом, в примере кода используется ASENSOR_TYPE_ACCELEROMETER. К сожалению, ASENSOR_TYPE_GRAVITY отсутствует. Является ли это просто случаем, когда NDK выполняет только базовое подмножество SDK API?
Как я могу выполнить слияние датчиков на Android NDK? Я бы не хотел вводить значения из Java, так как я читал предупреждения о высокой загрузке ЦП при выполнении высокочастотных чтений в Java.
Спасибо.