6,sensor native分析
获取sensor数据除了android上层进行开发之外,还可以直接进行native开发。
6.1 开发说明
初始化,
sensorManager = ASensorManager_getInstance(); //获取AsensorManager对象
//设置加速度的值
accelerometer = ASensorManager_getDefaultSensor(sensorManager, ASENSOR_TYPE_ACCELEROMETER);
//获取Alooper对象
looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);
// 获取AsensorEventQueue对象
accelerometerEventQueue = ASensorManager_createEventQueue(sensorManager, looper,
LOOPER_ID_USER, NULL, NULL);
auto status = ASensorEventQueue_enableSensor(accelerometerEventQueue, accelerometer);
//设置sensor的频率, SENSOR_REFRESH_PERIOD_US为 int值,单位为us。
status = ASensorEventQueue_setEventRate(accelerometerEventQueue, accelerometer,
SENSOR_REFRESH_PERIOD_US);
获取一组sensor的值,sensor组的大小和频率有关。
ASensorEvent event;
float a = SENSOR_FILTER_ALPHA;