Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C/C+访问Android传感器+;应用_Android_C++_C_Android Sensors - Fatal编程技术网

使用C/C+访问Android传感器+;应用

使用C/C+访问Android传感器+;应用,android,c++,c,android-sensors,Android,C++,C,Android Sensors,有没有一种方法可以通过c/c++应用程序访问android传感器(x、y、z数据)。据我所知,只有通过android应用程序和框架之间的接口JNI才能访问它。 我阅读并尝试将本机应用程序(来自android-ndk-r10d\samples\native活动)构建为可执行文件。我的android.mk如下所示: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := native-activity LOCAL

有没有一种方法可以通过c/c++应用程序访问android传感器(x、y、z数据)。据我所知,只有通过android应用程序和框架之间的接口JNI才能访问它。 我阅读并尝试将本机应用程序(来自android-ndk-r10d\samples\native活动)构建为可执行文件。我的android.mk如下所示:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := native-activity
LOCAL_SRC_FILES := main.c
LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := android_native_app_glue

include $(BUILD_EXECUTABLE)

$(call import-module,android/native_app_glue)
我已将本机activity\jni\main.c文件中的android_main更改为main()。但在我将其推送到android文件系统并运行./native activity后,我出现以下错误: 无法链接可执行文件:无法加载所需的库“libandroid.so”

`./native-activity:cause by "libandroid.so" has unexpected e_machine: 3`
我已将libandroid.so从system/lib/移动到本机活动的当前目录


我做错了什么?有没有其他更好的方法可以通过c/c++应用程序访问android传感器数据?

大多数android IPC服务实际上都是用Java实现的,因此即使使用“本机活动”,最终也会在过程中包含的Dalvik或android运行时引擎中运行IPC API的粘合代码。您的纯本机可执行文件缺少这一点,因此没有正式的方式与这些资源对话。为什么要运行纯本地程序?无论如何,在生产环境中,在Android设备上没有正常的方法来调用这样的函数-是的,您可以从活动或服务启动它,但是感知到的好处是什么?也就是说,您的实际错误来自于尝试链接为不同体系结构构建的库,而不是您编译的库。即使你克服了这一点,它仍然不起作用(有大量的幕后黑客),但事实上,你正在得到这个错误,这表明你已经在目录之间手动复制系统组件,而不清楚它们之间的关系。