我正在尝试编写一个将Java SDK用于GUI的Android应用程序,并使用NDK绘制内容并读取线性加速度传感器(基于加速度计,但不包括重力)。 基本上,我想知道何时摇动设备并且我的应用程序处于活动状态。
我认为我以相当基本的方式使用ASensorEventQueue_hasEvents和ALooper_pollAll,但它们分别返回-1和-4。 这些都是错误,但是我不知道它们是什么意思,或者我可能做错了什么。 任何帮助都将受到欢迎,谢谢! 以下是一些代码片段:
为了开始侦听线性加速度传感器的数据,我做了以下工作:
//sensorManager = ASensorManager_getInstance();
sensorManager = ASensorManager_getInstanceForPackage(mypackage);
sensor = ASensorManager_getDefaultSensor(sensorManager, ASENSOR_TYPE_LINEAR_ACCELERATION);
if (sensor == nullptr) {
return env->NewStringUTF("Linear accelerometer is not present");
}
looper = ALooper_prepare(0);
if (looper == nullptr) {
return env->NewStringUTF("Could not get looper.");
}
eventQueue = ASensorManager_crea