相关疑难解决方法(0)

通过NativeActivity NDK访问(更快的轮询)加速度计

我用NDK更快地搜索了关于轮询加速度计的教程/答案,但还没找到求解器.刚刚在这里找到了androiddevelopers文档.

我需要的是轮询加速度大约每秒100个样本(100Hz),默认情况下我的设备(三星Galaxy SL i9003与姜饼2.3.5)默认SENSOR_DELAY_FASTEST只能获得大约60个样本persecond(60Hz).因此,我尝试通过生成.c文件,通过NativeActivity访问传感器,我试图基于sensor.h和looper.h制作.c文件:

#include <jni.h>
#include <string.h>

#include <android/sensor.h>
#include <android/log.h>
#include <android/looper.h>

#define TAG "accelerondk"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)

#define LOOPER_ID 1
#define SAMP_PER_SEC 100 //i've changed to 120, even 10, but nothing happen

void Java_azka_web_ndk_AcceleroNDKActivity_startMonitoring(JNIEnv* env, jclass clazz) {
    ASensorManager* sensorManager = ASensorManager_getInstance();

    ALooper* looper = ALooper_forThread();
    if(looper == NULL)
        looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);

    ASensorRef accelerometerSensor = ASensorManager_getDefaultSensor(sensorManager,ASENSOR_TYPE_ACCELEROMETER);
    LOGI("accelerometerSensor: %s, vendor: %s", ASensor_getName(accelerometerSensor), ASensor_getVendor(accelerometerSensor));

    ASensorEventQueue* queue = ASensorManager_createEventQueue(sensorManager, looper, LOOPER_ID, …
Run Code Online (Sandbox Code Playgroud)

android native sensor accelerometer android-ndk

14
推荐指数
2
解决办法
1万
查看次数

通过NDK访问Android传感器

我需要在Android上以加速度计读取大约100个样本,并且采用固定的采样率.目前的传感器管理员既不提供也不提供.

我读过需要非常快速地阅读android传感器

他似乎可以访问使他的生活更轻松的驱动程序代码.

我很好奇是否有人能够通过NDK做这样的事情而没有那种知识.

提前致谢!

android sensor accelerometer android-ndk

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

accelerometer ×2

android ×2

android-ndk ×2

sensor ×2

native ×1