在Android NDK项目中,我们需要使用HAL接口访问蓝牙。我们的意图是这样做:
#include <hardware/hardware.h>
#include <hardware/bluetooth.h>
....
void load_Module(....)
{
hw_module_t* module;
hw_device_t* device;
bdt_log("Loading HAL lib + extensions");
err = hw_get_module(BT_HARDWARE_MODULE_ID, (hw_module_t const**)&module);
if (err == 0){
err = module->methods->open(module, BT_HARDWARE_MODULE_ID, &device);
if (err == 0) {
bt_device = (bluetooth_device_t *)device;
sBtInterface = bt_device->get_bluetooth_interface();
}
}
}似乎每个人都在做同样的事情(在google示例代码中)。当我们尝试编译时,似乎有一个问题:
#include <hardware/hardware.h> no such file我们在Android.mk中正确地添加了一个权限来声明并正确地添加库
我们需要添加更多的东西吗?有没有我可以参考的工作项目?
发布于 2015-07-03 05:53:51
您正在尝试在Android NDK项目中使用libhardware。libhardware是Android框架的一部分,不是NDK的一部分。
https://github.com/android/platform_hardware_libhardware
因此,如果您可以使用libhardware构建您的项目,那么您的项目就不具备Android的真正二进制兼容性。它可以在一些设备,一些版本上工作,但不能保证。
根据我的经验,我相信你可以在AOSP上构建你的代码。您需要修改AOSP的Android.mk,而不是NDK。
https://stackoverflow.com/questions/31185747
复制相似问题